ID3DXEffectCompiler::SetLiteral, méthode
Bascule le status littéral d’un paramètre. Un paramètre littéral a une valeur qui ne change pas pendant la durée de vie d’un effet.
Syntaxe
HRESULT SetLiteral(
[in] D3DXHANDLE hParameter,
[in] BOOL Literal
);
Paramètres
-
hParameter [in]
-
Type : D3DXHANDLE
Identificateur unique d’un paramètre. Consultez Handles (Direct3D 9).
-
Littéral [in]
-
Type : BOOL
Définissez sur TRUE pour faire du paramètre un littéral, et FALSE si le paramètre peut changer de valeur pendant la durée de vie du nuanceur.
Valeur retournée
Type : HRESULT
Si la méthode réussit, la valeur de retour est D3D_OK. Si la méthode échoue, la valeur de retour peut être D3DERR_INVALIDCALL.
Notes
Cette méthode change uniquement si le paramètre est un littéral ou non. Pour modifier la valeur d’un paramètre, utilisez une méthode telle que ID3DXBaseEffect::SetBool ou ID3DXBaseEffect::SetValue.
Cette fonction doit être appelée avant la compilation de l’effet. Voici un exemple d’utilisation de cette fonction :
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);
}
Spécifications
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|
Voir aussi