D3DX10CompileFromMemory 函数

注意

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

 

编译内存中加载的着色器或效果。

语法

HRESULT D3DX10CompileFromMemory(
  _In_        LPCSTR             pSrcData,
  _In_        SIZE_T             SrcDataLen,
  _In_        LPCSTR             pFileName,
  _In_  const D3D10_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
);

parameters

pSrcData [in]

类型: LPCSTR

指向内存中着色器的指针。

SrcDataLen [in]

类型: SIZE_T

内存中着色器的大小。

pFileName [in]

类型: LPCSTR

包含着色器代码的文件的名称。

pDefines [in]

类型: const D3D_SHADER_MACRO*

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

pInclude [in]

类型: LPD3D10INCLUDE

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

pFunctionName [in]

类型: LPCSTR

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

pProfile [in]

类型: LPCSTR

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

Flags1 [in]

类型: UINT

着色器编译标志

Flags2 [in]

类型: UINT

效果编译标志。 编译着色器而不是效果文件时, D3DX10CompileFromMemory 将忽略 Flags2;建议将 Flags2 设置为零,因为如果调用的函数不使用非pointer 参数,则最好将非pointer 参数设置为零。

pPump [in]

类型: ID3DX10ThreadPump*

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

ppShader [out]

类型: ID3D10Blob**

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

ppErrorMsgs [out]

类型: ID3D10Blob**

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

pHResult [out]

类型: HRESULT*

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

返回值

类型: HRESULT

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

要求

要求
标头
D3DX10Async.h

请参阅

常规用途函数