Partager via


D3DXCreateEffectEx, fonction

Crée un effet à partir d’une description d’effet ASCII ou binaire. Cette fonction est une version étendue de D3DXCreateEffect qui permet à une application de contrôler quels paramètres sont ignorés par le système d’effets.

Syntaxe

HRESULT D3DXCreateEffectEx(
  _In_        LPDIRECT3DDEVICE9 pDevice,
  _In_        LPCVOID           pSrcData,
  _In_        UINT              SrcDataLen,
  _In_  const D3DXMACRO         *pDefines,
  _In_        LPD3DXINCLUDE     pInclude,
  _In_        LPCSTR            pSkipConstants,
  _In_        DWORD             Flags,
  _In_        LPD3DXEFFECTPOOL  pPool,
  _Out_       LPD3DXEFFECT      *ppEffect,
  _Out_       LPD3DXBUFFER      *ppCompilationErrors
);

Paramètres

pDevice [in]

Type : LPDIRECT3DDEVICE9

Pointeur vers l’appareil qui créera l’effet. Consultez IDirect3DDevice9.

pSrcData [in]

Type : LPCVOID

Pointeur vers une mémoire tampon contenant une description d’effet.

SrcDataLen [in]

Type : UINT

Longueur des données d’effet, en octets.

pDefines [in]

Type : const D3DXMACRO*

Tableau facultatif terminé par null de structures D3DXMACRO qui décrivent des définitions de préprocesseur. Cette valeur peut être NULL.

pInclude [in]

Type : LPD3DXINCLUDE

Pointeur d’interface facultatif, ID3DXInclude, à utiliser pour la gestion des directives #include. Si cette valeur est NULL, #includes sera respecté lors de la compilation à partir d’un fichier ou provoquera une erreur lors de la compilation à partir d’une ressource ou d’une mémoire.

pSkipConstants [in]

Type : LPCSTR

Chaîne de paramètres d’effet qui seront ignorés par le système d’effets. La chaîne doit être terminée par NULL et doit contenir le nom de chaque constante gérée par l’application séparée par un point-virgule.

Indicateurs [in]

Type : DWORD

Si pSrcData contient un effet de texte, les indicateurs peuvent être une combinaison d’indicateurs D3DXSHADER et d’indicateurs D3DXFX ; sinon, pSrcData contient un effet binaire et les seuls indicateurs respectés sont des indicateurs D3DXFX. Le compilateur HLSL Direct3D 10 est désormais la valeur par défaut. Pour plus d’informations, consultez Effect-Compiler Tool .

pPool [in]

Type : LPD3DXEFFECTPOOL

Pointeur vers un objet ID3DXEffectPool à utiliser pour les paramètres partagés. Si cette valeur est NULL, aucun paramètre n’est partagé.

ppEffect [out]

Type : LPD3DXEFFECT*

Retourne un pointeur vers une interface ID3DXEffect .

ppCompilationErrors [out]

Type : LPD3DXBUFFER*

Retourne une mémoire tampon contenant une liste d’erreurs de compilation.

Valeur retournée

Type : HRESULT

Si la fonction réussit, la valeur de retour est D3D_OK. Si la fonction échoue, la valeur de retour peut être l’une des suivantes : D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Notes

Cette fonction est une version étendue de D3DXCreateEffect qui permet à une application de spécifier les constantes d’effet qui seront gérées par l’application. Une constante gérée par l’application est ignorée par le système d’effets. Autrement dit, l’application est responsable de l’initialisation de la constante, ainsi que de l’enregistrement et de la restauration de son état le cas échéant.

Cette fonction vérifie chaque constante dans pSkipConstants pour voir que :

  • Il est lié à un registre constant.
  • Il est utilisé uniquement dans le code du nuanceur HLSL.

Si une constante est nommée dans la chaîne qui n’est pas présente dans l’effet, elle est ignorée.

Spécifications

Condition requise Valeur
En-tête
D3DX9Effect.h
Bibliothèque
D3dx9.lib

Voir aussi

Fonctions d’effet

D3DXCreateEffectFromFileEx

D3DXCreateEffectFromResourceEx