Функция 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

Идентификатор GUID ссылки на используемый com-интерфейс. Например, 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
Header d3dcompiler.h
Библиотека D3dcompiler_47.lib
DLL D3dcompiler_47.dll

См. также

Функции