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