D3DXGatherFragmentsFromFile
![]() |
![]() |
D3DXGatherFragmentsFromFile
Gathers shader fragments into a buffer to be passed to the fragment linker.
HRESULT D3DXGatherFragmentsFromFile( LPCTSTR pSrcFile, CONST D3DXMACRO* pDefines, LPD3DXINCLUDE pInclude, DWORD Flags, LPD3DXBUFFER* ppShader, LPD3DXBUFFER * ppErrorMsgs );
Parameters
- pSrcFile
[in] Pointer to the filename. If the compiler settings require Unicode, the data type LPCTSTR resolves to LPCWSTR. Otherwise, the string data type resolves to LPCSTR. See Remarks. - pDefines
[in] An optional NULL terminated array of D3DXMACRO structures. This value may be NULL. - pInclude
[in] 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. - Flags
[in] Compile options identified by various flags. The Direct3D 10 HLSL compiler is now the default. See D3DXSHADER Flags for details. - ppShader
[in, out] Returns a buffer containing the created shader fragments, as well as any embedded debug info. - ppErrorMsgs
[in, out] Returns a buffer containing a listing of errors and warnings that were encountered during the creation of shader fragments. These are the same messages the debugger displays when running in debug mode. This value may be NULL.
Return Values
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
The compiler setting also determines the function version. If Unicode is defined, the function call resolves to D3DXGatherFragmentsFromFileW. Otherwise, the function call resolves to D3DXGatherFragmentsFromFileA because ANSI strings are being used.
To compile a fragment within an effect call D3DXGatherFragmentsFromFile as shown here:
DWORD g_dwShaderFlags; // Shader compilation/linking flags
LPD3DXBUFFER g_pCompiledFragments = NULL;
// Compile the fragments to a buffer. The fragments must be linked together to form
// a shader before they can be used for rendering.
V_RETURN( D3DXGatherFragmentsFromFile( L"FragmentLinker.fx", NULL,
NULL, g_dwShaderFlags, &g_pCompiledFragments, NULL ) );
Requirements
Header: Declared in D3DX9Shader.h.
Library: Use D3dx9.lib.
See Also
D3DXCreateFragmentLinker, Writing HLSL Shaders in Direct3D 9
.jpg)
.jpg)