D3DReflect 函数 (d3dcompiler.h)

获取指向反射接口的指针。

语法

HRESULT D3DReflect(
  [in]  LPCVOID pSrcData,
  [in]  SIZE_T  SrcDataSize,
  [in]  REFIID  pInterface,
  [out] void    **ppReflector
);

参数

[in] pSrcData

类型: LPCVOID

指向源数据的指针,作为已编译的 HLSL 代码。

[in] SrcDataSize

类型: SIZE_T

pSrcData 的长度。

[in] pInterface

类型: REFIID

要使用的 COM 接口的引用 GUID。 例如, IID_ID3D11ShaderReflection

[out] ppReflector

类型: void**

指向反射接口的指针。

返回值

类型: HRESULT

返回 Direct3D 11 返回代码之一。

备注

着色器代码包含可以使用反射 API 检查的元数据。

以下代码演示如何从着色器检索 ID3D11ShaderReflection 接口。


pd3dDevice->CreatePixelShader( pPixelShaderBuffer->GetBufferPointer(),
                               pPixelShaderBuffer->GetBufferSize(), g_pPSClassLinkage, &g_pPixelShader );

ID3D11ShaderReflection* pReflector = NULL; 
D3DReflect( pPixelShaderBuffer->GetBufferPointer(), pPixelShaderBuffer->GetBufferSize(), 
            IID_ID3D11ShaderReflection, (void**) &pReflector);

要求

   
目标平台 Windows
标头 d3dcompiler.h
Library D3dcompiler_47.lib
DLL D3dcompiler_47.dll

请参阅

函数