ID3DXEffectCompiler::SetLiteral 메서드

매개 변수의 리터럴 상태 전환합니다. 리터럴 매개 변수에는 효과의 수명 동안 변경되지 않는 값이 있습니다.

구문

HRESULT SetLiteral(
  [in] D3DXHANDLE hParameter,
  [in] BOOL       Literal
);

매개 변수

hParameter [in]

형식: D3DXHANDLE

매개 변수에 대한 고유 식별자입니다. 핸들(Direct3D 9)을 참조하세요.

리터럴 [in]

형식: BOOL

매개 변수를 리터럴로 만들려면 TRUE 로 설정하고, 매개 변수가 셰이더 수명 동안 값을 변경할 수 있는 경우 FALSE 로 설정합니다.

반환 값

형식: HRESULT

메서드가 성공하면 반환 값이 D3D_OK. 메서드가 실패하면 반환 값을 D3DERR_INVALIDCALL 수 있습니다.

설명

이 메서드는 매개 변수가 리터럴인지 여부만 변경합니다. 매개 변수 값을 변경하려면 ID3DXBaseEffect::SetBool 또는 ID3DXBaseEffect::SetValue와 같은 메서드를 사용합니다.

이 함수는 효과가 컴파일되기 전에 호출해야 합니다. 다음은 이 함수를 사용하는 방법의 예입니다.

    LPD3DXEFFECTCOMPILER pEffectCompiler;
    char errors[1000];
    HRESULT hr;
    
    hr = D3DXCreateEffectCompilerFromFile("shader.fx",
                                          NULL, NULL, 0,
                                          &pEffectCompiler, 
                                          &errors);
    
    //In the fx file, literalInt is declared as an int.
    //By calling this function, the compiler will treat
    //it as a literal (i.e. #define)
    hr = pEffectCompiler->SetLiteral("literalInt", TRUE);
    
    //create ten different variations of the same effect
    LPD3DXBUFFER pEffects[10];
    LPD3DXBUFFER pErrors;
    for(int i = 0; i < 10; ++i)
    {
        hr = pEffectCompiler->SetInt("literalInt", i);
    
        hr = pEffectCompiler->CompileEffect(0, &pEffects[i], &pErrors);
    }

요구 사항

요구 사항
헤더
D3DX9Shader.h
라이브러리
D3dx9.lib

추가 정보

ID3DXEffectCompiler

사용량 및 리터럴(Direct3D 9)

ID3DXEffectCompiler::GetLiteral