Bagikan melalui


D3DX10DisassembleShader (Fungsi D3DX10DisassembleShader)

Catatan

Alih-alih menggunakan fungsi warisan ini, kami sarankan Anda menggunakan D3DDisassemble API.

 

Fungsi ini -- yang membongkar shader yang dikompilasi ke dalam string teks yang berisi instruksi perakitan dan mendaftarkan penetapan -- tidak ada lagi. Sebagai gantinya, gunakan D3DDisassemble10Effect.

Sintaks

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

Parameter

pShader [in]

Jenis: const void*

Penunjuk ke shader yang dikompilasi.

BytecodeLength [in]

Jenis: SIZE_T

Ukuran pShader.

EnableColorCode [in]

Jenis: BOOL

Sertakan tag HTML dalam output untuk mewarnai kode hasilnya.

pComments [in]

Jenis: LPCSTR

String komentar di bagian atas shader yang mengidentifikasi konstanta dan variabel shader.

ppDisassembly [out]

Jenis: ID3D10Blob**

Alamat buffer (lihat ID3D10Blob Interface) yang berisi shader yang dibongkar.

Menampilkan nilai

Jenis: HRESULT

Mengembalikan salah satu Kode Pengembalian Direct3D 10 berikut.

Keterangan

Teks yang dikembalikan ini mencakup header dengan versi pengkompilasi HLSL yang digunakan untuk menghasilkan objek ini, komentar yang menjelaskan tata letak memori buffer konstanta yang digunakan oleh shader, tanda tangan input dan output, dan titik pengikatan sumber daya.

Berikut adalah contoh membongkar shader yang dikompilasi. Contoh mengasumsikan Anda mulai dengan shader yang dikompilasi (ditampilkan sebagai pVSBuf yang dapat Anda lihat di Sampel 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 );
        }
    }
}

Persyaratan

Persyaratan Nilai
Header
D3DX10Core.h

Lihat juga

Fungsi Tujuan Umum