Функция D3DX10DisassembleShader
Примечание
Вместо использования этой устаревшей функции рекомендуется использовать API D3DDisassemble .
Эта функция, которая дизассемблирует скомпилированный шейдер в текстовую строку, содержащую инструкции сборки и регистрируемые назначения, больше не существует. Вместо этого используйте D3DDisassemble10Effect.
Синтаксис
HRESULT D3DX10DisassembleShader(
_In_ const void *pShader,
_In_ SIZE_T BytecodeLength,
_In_ BOOL EnableColorCode,
_In_ LPCSTR pComments,
_Out_ ID3D10Blob **ppDisassembly
);
Параметры
-
pShader [in]
-
Тип: const void*
Указатель на скомпилированный шейдер.
-
BytecodeLength [in]
-
Тип: SIZE_T
Размер pShader.
-
EnableColorCode [in]
-
Тип: BOOL
Включите HTML-теги в выходные данные для цветового кода результата.
-
pComments [in]
-
Тип: LPCSTR
Строка комментария в верхней части шейдера, идентифицирующая константы и переменные шейдера.
-
ppDisassembly [out]
-
Тип: ID3D10Blob**
Адрес буфера (см. интерфейс ID3D10Blob), который содержит дизассемблированный шейдер.
Возвращаемое значение
Тип: HRESULT
Возвращает один из следующих кодов возврата Direct3D 10.
Комментарии
Этот возвращенный текст включает заголовок с версией компилятора HLSL, используемой для создания этого объекта, комментарии, описывающие расположение памяти буферов констант, используемых шейдером, входные и выходные подписи, а также точки привязки ресурсов.
Ниже приведен пример дизассемблирования скомпилированного шейдера. В примере предполагается, что вы начинаете с скомпилированного шейдера (показан как pVSBuf , который можно увидеть в примере HLSLWithoutFX10).
LPCSTR commentString = NULL;
ID3D10Blob* pIDisassembly = NULL;
char* pDisassembly = NULL;
if( pVSBuf )
{
D3D10DisassembleShader( (UINT*) pVSBuf->GetBufferPointer(),
pVSBuf->GetBufferSize(), TRUE, commentString, &pIDisassembly );
if( pIDisassembly )
{
FILE* pFile = fopen( "shader.htm", "w" );
if( pFile)
{
fputs( (char*)pIDisassembly->GetBufferPointer(), pFile );
fclose( pFile );
}
}
}
Требования
Требование | Значение |
---|---|
Заголовок |
|
См. также раздел