D3DX10CompileFromFile 函数

注意

建议使用Fxc.exe命令行编译器或使用 D3DCompile API 脱机编译,而不是使用此旧函数。

 

从文件编译着色器或效果。

语法

HRESULT D3DX10CompileFromFile(
  _In_        LPCTSTR            pSrcFile,
  _In_  const D3D_SHADER_MACRO *pDefines,
  _In_        LPD3D10INCLUDE     pInclude,
  _In_        LPCSTR             pFunctionName,
  _In_        LPCSTR             pProfile,
  _In_        UINT               Flags1,
  _In_        UINT               Flags2,
  _In_        ID3DX10ThreadPump  *pPump,
  _Out_       ID3D10Blob         **ppShader,
  _Out_       ID3D10Blob         **ppErrorMsgs,
  _Out_       HRESULT            *pHResult
);

参数

pSrcFile [in]

类型: LPCTSTR

包含着色器代码的文件的名称。 如果编译器设置需要 Unicode,则数据类型 LPCTSTR 解析为 LPCWSTR。 否则,数据类型将解析为 LPCSTR。

pDefines [in]

类型: const D3D_SHADER_MACRO*

可选。 指向宏定义的数组的指针, (请参阅 D3D_SHADER_MACRO) 。 数组中的最后一个结构充当终止符,并且必须将所有成员设置为 0。 如果未使用,请将 pDefines 设置为 NULL

pInclude [in]

类型: LPD3D10INCLUDE

可选。 指向用于处理包含文件的 ID3D10Include 接口 接口的指针。 如果着色器包含#include,则将其设置为 NULL 将导致编译错误。

pFunctionName [in]

类型: LPCSTR

着色器入口点函数的名称,其中着色器执行开始。 编译效果时, D3DX10CompileFromFile 忽略 pFunctionName;建议将 pFunctionName 设置为 NULL,因为如果调用的函数不使用 ,则良好的编程做法是将指针参数设置为 NULL

pProfile [in]

类型: LPCSTR

一个指定着色器模型的字符串;可以是 着色器模型 2着色器模型 3着色器模型 4 中的任何配置文件。

Flags1 [in]

类型: UINT

着色器编译标志

Flags2 [in]

类型: UINT

效果编译标志。 编译着色器而不是效果文件时, D3DX10CompileFromFile 将忽略 Flags2;我们建议将 Flags2 设置为零,因为如果调用的函数不使用它,则良好的编程做法是将非点器参数设置为零。

pPump [in]

类型: ID3DX10ThreadPump*

指向线程泵接口的指针 (请参阅 ID3DX10ThreadPump 接口) 。 使用 NULL 指定此函数在完成之前不应返回。

ppShader [out]

类型: ID3D10Blob**

指向 ID3D10Blob 接口 的指针,其中包含已编译的着色器,以及任何嵌入的调试和符号表信息。

ppErrorMsgs [out]

类型: ID3D10Blob**

指向 ID3D10Blob 接口 的指针,其中包含编译过程中发生的错误和警告的列表。 这些错误和警告与调试器的调试输出相同。

pHResult [out]

类型: HRESULT*

指向返回值的指针。 可以为 NULL。 如果 pPump 不是 NULL则 pHResult 必须是有效的内存位置,直到异步执行完成。

返回值

类型: HRESULT

返回值是 Direct3D 10 返回代码中列出的值之一。

备注

要求

要求 Value
标头
D3DX10Async.h

另请参阅

常规用途函数