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 |
|
Vedi anche