D3DXCreateEffectFromFileEx function
Create an effect from an ASCII or binary effect description. This function is an extended version of D3DXCreateEffectFromFile that allows an application to control which parameters are ignored by the effects system.
Syntax
HRESULT D3DXCreateEffectFromFileEx(
_In_ LPDIRECT3DDEVICE9 pDevice,
_In_ LPCTSTR pSrcFile,
_In_ const D3DXMACRO *pDefines,
_In_ LPD3DXINCLUDE pInclude,
_In_ LPCSTR pSkipConstants,
_In_ DWORD Flags,
_In_ LPD3DXEFFECTPOOL pPool,
_Out_ LPD3DXEFFECT *ppEffect,
_Out_ LPD3DXBUFFER *ppCompilationErrors
);
Parameters
-
pDevice [in]
-
Type: LPDIRECT3DDEVICE9
Pointer to the device that will create the effect. See IDirect3DDevice9.
-
pSrcFile [in]
-
Type: LPCTSTR
Pointer to the filename. This parameter supports both Unicode and ANSI strings. See Remarks.
-
pDefines [in]
-
Type: const D3DXMACRO*
Optional NULL-terminated array of preprocessor macro definitions. See D3DXMACRO.
-
pInclude [in]
-
Type: LPD3DXINCLUDE
Optional interface pointer, ID3DXInclude, to use for handling #include directives. If this value is NULL, #includes will either be honored when compiling from a file or will cause an error when compiled from a resource or memory.
-
pSkipConstants [in]
-
Type: LPCSTR
A string of effect parameters that will be ignored by the effect system. The string must be NULL terminated, and needs to contain the name of each application-managed constant separated by a semicolon.
-
Flags [in]
-
Type: DWORD
If pSrcFile contains a text effect, flags can be a combination of D3DXSHADER Flags and D3DXFX flags; otherwise, pSrcFile contains a binary effect and the only flags honored are D3DXFX flags. The Direct3D 10 HLSL compiler is now the default. See Effect-Compiler Tool for details.
-
pPool [in]
-
Type: LPD3DXEFFECTPOOL
Pointer to a ID3DXEffectPool object to use for shared parameters. If this value is NULL, no parameters will be shared.
-
ppEffect [out]
-
Type: LPD3DXEFFECT*
Returns a pointer to a buffer containing the compiled effect. See ID3DXEffect.
-
ppCompilationErrors [out]
-
Type: LPD3DXBUFFER*
Returns a pointer to a buffer containing a listing of compile errors. See ID3DXBuffer.
Return value
Type: HRESULT
If the function succeeds, the return value is D3D_OK. If the function fails, the return value can be one of the following: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.
Remarks
This function is an extended version of D3DXCreateEffectFromFile that allows an application to specify which effect constants will be managed by the application. A constant that is managed by the application is ignored by the effects system. That is, the application is responsible for initializing the constant as well as saving and restoring its state whenever appropriate.
This function checks each constant in pSkipConstants to see that:
- It is bound to a constant register.
- It is only used in HLSL shader code.
If a constant is named in the string that is not present in the effect, it is ignored.
If the compiler settings require Unicode, the data type LPCTSTR resolves to LPCWSTR. Otherwise, the LPCTSTR data type resolves to LPCSTR.
The compiler setting also determines the function version. If Unicode is defined, the function call resolves to D3DXCreateEffectFromFileW. Otherwise, the function call resolves to D3DXCreateEffectFromFileA because ANSI strings are being used.
Requirements
Requirement | Value |
---|---|
Header |
|
Library |
|
See also