D3DX10DisassembleShader fonction)

Notes

Au lieu d’utiliser cette fonction héritée, nous vous recommandons d’utiliser l’API D3DDisassemble .

Cette fonction, qui Désassemble un nuanceur compilé en une chaîne de texte qui contient des instructions d’assembly et des affectations de registres, n’existe plus. Utilisez plutôt D3DDisassemble10Effect.

Syntaxe

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

Paramètres

pShader [ dans]

Type : const void *

Pointeur vers le nuanceur compilé.

BytecodeLength [ dans]

Type : taille _ T

Taille de pShader.

EnableColorCode [ dans]

Type : bool

Incluez des balises HTML dans la sortie pour coder en couleur le résultat.

pComments [ dans]

Type : LPCSTR

Chaîne de commentaire en haut du nuanceur qui identifie les constantes et les variables de nuanceur.

ppDisassembly [ à]

Type : ID3D10Blob**

Adresse d’une mémoire tampon (voir interface ID3D10Blob) qui contient le nuanceur désassemblé.

Valeur retournée

Type : HRESULT

Retourne l’un des codes de retour Direct3D 10suivants.

Remarques

Ce texte retourné comprend un en-tête avec la version du compilateur HLSL utilisée pour générer cet objet, des commentaires décrivant la disposition mémoire des mémoires tampons constantes utilisées par le nuanceur, les signatures d’entrée et de sortie et les points de liaison de ressources.

Voici un exemple de désassemblage d’un nuanceur compilé. L’exemple suppose que vous démarrez avec un nuanceur compilé (représenté sous la forme pVSBuf , que vous pouvez voir dans l' exemple 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 );
        }
    }
}

Configuration requise

Condition requise Valeur
En-tête
D3DX10Core. h

Voir aussi

Fonctions usage général