Функция D3D10DisassembleEffect (d3d10effect.h)
Эта функция, которая дизассемблирует скомпилированный эффект в текстовую строку, содержащую инструкции сборки и регистрируемые назначения, является нерекомендуемой. Вместо этого используйте D3DDisassemble10Effect.
Синтаксис
HRESULT D3D10DisassembleEffect(
[in] ID3D10Effect *pEffect,
[in] BOOL EnableColorCode,
[out] ID3D10Blob **ppDisassembly
);
Параметры
[in] pEffect
Тип: ID3D10Effect*
Указатель на интерфейс ID3D10Effect, содержащий скомпилированный эффект.
[in] EnableColorCode
Тип: BOOL
Включите HTML-теги в выходные данные для цветового кода результата.
[out] ppDisassembly
Тип: ID3D10Blob**
Указатель на интерфейс ID3D10Blob , содержащий дизассемблированный шейдер.
Возвращаемое значение
Тип: HRESULT
Возвращает один из следующих кодов возврата Direct3D 10.
Комментарии
Этот возвращенный текст включает заголовок с версией компилятора HLSL, используемой для создания этого объекта, комментарии, описывающие структуру памяти буферов констант, используемых шейдером, входные и выходные подписи, а также точки привязки ресурсов.
Ниже приведен пример дизассемблирования скомпилированного эффекта. В примере предполагается, что вы начинаете с скомпилированного эффекта ( показана l_pBlob_Effect который можно увидеть в разделе Компиляция эффекта (Direct3D 10)).
LPCSTR commentString = NULL;
ID3D10Blob* pIDisassembly = NULL;
char* pDisassembly = NULL;
if( pVSBuf )
{
D3D10DisassembleEffect( (UINT*) l_pBlob_Effect->GetBufferPointer(),
l_pBlob_Effect->GetBufferSize(), TRUE, commentString, &pIDisassembly );
if( pIDisassembly )
{
FILE* pFile = fopen( "effect.htm", "w" );
if( pFile)
{
fputs( (char*)pIDisassembly->GetBufferPointer(), pFile );
fclose( pFile );
}
}
}
Требования
Целевая платформа | Windows |
Header | d3d10effect.h |
Библиотека | D3D10.lib |
DLL | D3D10.dll |