D3DXCompileShader
Microsoft DirectX 9.0 SDK Update (October 2004)

D3DXCompileShader Function


Compile a shader file.

Syntax

HRESULT WINAPI D3DXCompileShader(      

    LPCTSTR pSrcData,     UINT srcDataLen,     CONST D3DXMACRO* pDefines,     LPD3DXINCLUDE pInclude,     LPCSTR pFunctionName,     LPCSTR pProfile,     DWORD Flags,     LPD3DXBUFFER* ppShader,     LPD3DXBUFFER* ppErrorMsgs,     LPD3DXCONSTANTTABLE *ppConstantTable );

Parameters

pSrcData
[in] Pointer to a string that contains the shader. If the compiler settings require Unicode, the data type LPCTSTR resolves to LPCWSTR. Otherwise, the string data type resolves to LPCSTR. See Remarks.
srcDataLen
[in] Length of the data in bytes.
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.
pFunctionName
[in] Pointer to a string that contains the name of the shader entry point function where execution begins. If the compiler settings require Unicode, the data type LPCTSTR resolves to LPCWSTR. Otherwise, the string data type resolves to LPCSTR. See Remarks.
pProfile
[in] Pointer to a shader profile which detemines the shader instruction set. See D3DXGetVertexShaderProfile or D3DXGetPixelShaderProfile for a list of the profiles available.
Flags
[in] Compile options identified by D3DXSHADER Compile Options.
ppShader
[out] Returns a buffer containing the created shader. This buffer contains the compiled shader code, as well as any embedded debug and symbol table information.
ppErrorMsgs
[out] Returns a buffer containing a listing of errors and warnings that were encountered during the compile. These are the same messages the debugger displays when running in debug mode. This value may be NULL.
ppConstantTable
[out] Returns an ID3DXConstantTable interface, which can be used to access shader constants. This value may be NULL.

Return Value

If the function succeeds, the return value is D3D_OK.

If the function fails, the return value can be one of the following:

D3DERR_INVALIDCALLThe method call is invalid. For example, a method's parameter may have an invalid value.
D3DXERR_INVALIDDATAThe data is invalid.
E_OUTOFMEMORYMicrosoft Direct3D could not allocate sufficient memory to complete the call.


Remarks

If the compiler settings require Unicode, the data type LPCTSTR resolves to LPCWSTR. Otherwise, the string data type resolves to LPCSTR.

The compiler setting also determines the function version. If Unicode is defined, the function call resolves to D3DXCompileShaderW. Otherwise, the function call resolves to D3DXCompileShaderA because ANSI strings are being used.

Function Information

Headerd3dx9shader.h
Import libraryd3dx9.lib
Minimum operating systems Windows 98

See Also

D3DXCompileShader, D3DXCompileShaderFromResource


© 2004 Microsoft Corporation. All rights reserved.
Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center.