Funzione D3DX10DisassembleShader

Nota

Anziché usare questa funzione legacy, è consigliabile usare l'API D3DDisassemble .

 

Questa funzione, che disassembla uno shader compilato in una stringa di testo che contiene istruzioni per l'assembly e registra le assegnazioni, non esiste più. Usare invece D3DDisassemble10Effect.

Sintassi

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

Parametri

pShader [in]

Tipo: const void*

Puntatore al shader compilato.

BytecodeLength [in]

Tipo: SIZE_T

Dimensione di pShader.

EnableColorCode [in]

Tipo: BOOL

Includere tag HTML nell'output per colorare il risultato.

pComments [in]

Tipo: LPCSTR

Stringa di commento nella parte superiore dello shader che identifica le costanti e le variabili shader.

ppDisassembly [out]

Tipo: ID3D10Blob**

Indirizzo di un buffer (vedere ID3D10Blob Interface) che contiene lo shader disassembled.

Valore restituito

Tipo: HRESULT

Restituisce uno dei codici restituiti Direct3D 10 seguenti.

Commenti

Questo testo restituito include un'intestazione con la versione del compilatore HLSL utilizzato per generare questo oggetto, i commenti che descrivono il layout della memoria dei buffer costanti usati da shader, firme di input e output e punti di associazione delle risorse.

Ecco un esempio di smontaggio di uno shader compilato. L'esempio presuppone che si inizi con uno shader compilato (illustrato come pVSBuf che è possibile visualizzare in HLSLWithoutFX10 Sample).

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 );
        }
    }
}

Requisiti

Requisito Valore
Intestazione
D3DX10Core.h

Vedi anche

Funzioni per utilizzo generico