Função D3DX10DisassembleShader

Observação

Em vez de usar essa função herdada, recomendamos que você use a API D3DDisassemble .

 

Essa função – que desmonta um sombreador compilado em uma cadeia de caracteres de texto que contém instruções de assembly e atribuições de registro – não existe mais. Em vez disso, use D3DDisassemble10Effect.

Sintaxe

HRESULT D3DX10DisassembleShader(
  _In_  const void       *pShader,
  _In_        SIZE_T     BytecodeLength,
  _In_        BOOL       EnableColorCode,
  _In_        LPCSTR     pComments,
  _Out_       ID3D10Blob **ppDisassembly
);

Parâmetros

pShader [in]

Tipo: const void*

Um ponteiro para o sombreador compilado.

BytecodeLength [in]

Tipo: SIZE_T

O tamanho do pShader.

EnableColorCode [in]

Tipo: BOOL

Inclua marcas HTML na saída para colorir o resultado.

pComments [in]

Tipo: LPCSTR

A cadeia de caracteres de comentário na parte superior do sombreador que identifica as constantes e variáveis do sombreador.

ppDisassembly [out]

Tipo: ID3D10Blob**

Endereço de um buffer (consulte Interface ID3D10Blob) que contém o sombreador desmontado.

Valor retornado

Tipo: HRESULT

Retorna um dos seguintes códigos de retorno do Direct3D 10.

Comentários

Esse texto retornado inclui um cabeçalho com a versão do compilador HLSL usada para gerar esse objeto, comentários que descrevem o layout de memória dos buffers constantes usados pelo sombreador, assinaturas de entrada e saída e pontos de associação de recursos.

Aqui está um exemplo de desmontagem de um sombreador compilado. O exemplo pressupõe que você comece com um sombreador compilado (mostrado como pVSBuf que você pode ver no exemplo 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 );
        }
    }
}

Requisitos

Requisito Valor
parâmetro
D3DX10Core.h

Confira também

Funções Uso Geral