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

Требования

Требование Значение
Заголовок
D3DX10Core.h

См. также раздел

Функции общего назначения