Поделиться через


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

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

Функции эффектов (Direct3D 10)