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 |
|
Confira também