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
D3DX9Shader. h
Bibliothèque
D3dx9. lib

Voir aussi

ID3DXEffectCompiler

Utilisations et littéraux (Direct3D 9)

ID3DXEffectCompiler::GetLiteral