Método ID3DXEffectCompiler::SetLiteral
Alterna a status literal de um parâmetro. Um parâmetro literal tem um valor que não é alterado durante o tempo de vida de um efeito.
Sintaxe
HRESULT SetLiteral(
[in] D3DXHANDLE hParameter,
[in] BOOL Literal
);
Parâmetros
-
hParameter [in]
-
Tipo: D3DXHANDLE
Identificador exclusivo para um parâmetro. Consulte Identificadores (Direct3D 9).
-
Literal [in]
-
Tipo: BOOL
Defina como TRUE para tornar o parâmetro um literal e FALSE se o parâmetro puder alterar o valor durante o tempo de vida do sombreador.
Valor retornado
Tipo: HRESULT
Se o método for bem-sucedido, o valor retornado será D3D_OK. Se o método falhar, o valor retornado poderá ser D3DERR_INVALIDCALL.
Comentários
Esses métodos só mudam se o parâmetro é um literal ou não. Para alterar o valor de um parâmetro, use um método como ID3DXBaseEffect::SetBool ou ID3DXBaseEffect::SetValue.
Essa função deve ser chamada antes que o efeito seja compilado. Aqui está um exemplo de como se pode usar essa função:
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);
}
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também