ID3DXEffectCompiler :: SetLiteral, méthode
Active/désactive l’État 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 [ dans]
-
Type : D3DXHANDLE
Identificateur unique d’un paramètre. Consultez Handles (Direct3D 9).
-
Littéral [ dans]
-
Type : bool
Affectez la valeur true pour que le paramètre soit un littéral, et false si le paramètre peut modifier la valeur pendant la durée de vie du nuanceur.
Valeur renvoyée
Type : HRESULT
Si la méthode est réussie, 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 comme 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);
}
Configuration requise
| Condition requise | Valeur |
|---|---|
| En-tête |
|
| Bibliothèque |
|