D3DCompile function
Note You can use this API to develop your Windows Store apps, but you can't use it in apps that you submit to the Windows Store.
Compile HLSL code or an effect file into bytecode for a given target.
Syntax
HRESULT D3DCompile( in LPCVOID pSrcData, in SIZE_T SrcDataSize, in_opt LPCSTR pSourceName, in_opt const D3D_SHADER_MACRO *pDefines, in_opt ID3DInclude *pInclude, in LPCSTR pEntrypoint, in LPCSTR pTarget, in UINT Flags1, in UINT Flags2, out ID3DBlob **ppCode, out_opt ID3DBlob **ppErrorMsgs );
Parameters
- pSrcData [in]
-
Type: LPCVOID
A pointer to uncompiled shader data; either ASCII HLSL code or a compiled effect.
- SrcDataSize [in]
-
Type: SIZE_T
Length of pSrcData.
- pSourceName [in, optional]
-
Type: LPCSTR
Optional. You can use this parameter for strings that specify error messages. If not used, set to NULL.
- pDefines [in, optional]
-
Type: const D3D_SHADER_MACRO*
Optional. An array of NULL-terminated macro definitions (see D3D_SHADER_MACRO).
- pInclude [in, optional]
-
Type: ID3DInclude*
Optional. A pointer to an ID3DInclude for handling include files. Setting this to NULL will cause a compile error if a shader contains a #include. You can pass the D3D_COMPILE_STANDARD_FILE_INCLUDE macro, which is a pointer to a default include handler. This default include handler includes files that are relative to the current directory and files that are relative to the directory of the initial source file. When you use D3D_COMPILE_STANDARD_FILE_INCLUDE, you must specify the source file name in the pSourceName parameter; the compiler will derive the initial relative directory from pSourceName.
#define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude*)(UINT_PTR)1)
- pEntrypoint [in]
-
Type: LPCSTR
The name of the shader entry point function where shader execution begins. When you compile an effect, D3DCompile ignores pEntrypoint; we recommend that you set pEntrypoint to NULL because it is good programming practice to set a pointer parameter to NULL if the called function will not use it.
- pTarget [in]
-
Type: LPCSTR
A string that specifies the shader target or set of shader features to compile against. The shader target can be shader model 2, shader model 3, shader model 4, or shader model 5. The target can also be an effect type (for example, fx_4_1). For info about the targets that various profiles support, see Specifying Compiler Targets.
- Flags1 [in]
-
Type: UINT
Shader compile options.
- Flags2 [in]
-
Type: UINT
Effect compile options. When you compile a shader and not an effect file, D3DCompile ignores Flags2; we recommend that you set Flags2 to zero because it is good programming practice to set a nonpointer parameter to zero if the called function will not use it.
- ppCode [out]
-
Type: ID3DBlob**
A pointer to a variable that receives a pointer to the ID3DBlob interface that you can use to access the compiled code.
- ppErrorMsgs [out, optional]
-
Type: ID3DBlob**
An optional pointer to a variable that receives a pointer to the ID3DBlob interface that you can use to access compiler error messages, or NULL if there are no errors.
Requirements
|
Header |
|
|---|---|
|
Library |
|
See also
Send comments about this topic to Microsoft
Build date: 3/5/2013
