D3DX10DisassembleShader 函式

注意

建議您使用 D3DDisassemble API,而不是使用此舊版函式。

 

此函式 -- 會將編譯的著色器反組譯成包含元件指令和暫存器指派的文字字串-- 已不存在。 請改用 D3DDisassemble10Effect

語法

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

參數

pShader [in]

類型: const void*

已編譯著色器的指標。

BytecodeLength [in]

類型: SIZE_T

pShader 的大小。

EnableColorCode [in]

類型: BOOL

在輸出中包含 HTML 標籤,以將結果標示為色彩。

pComments [in]

類型: LPCSTR

著色器頂端的批註字串,可識別著色器常數和變數。

ppDisassembly [out]

類型: ID3D10Blob**

緩衝區 (位址,請參閱 ID3D10Blob 介面) ,其中包含反組譯著色器。

傳回值

類型: HRESULT

傳回下列其中一個 Direct3D 10 傳回碼

備註

此傳回的文字包含標頭,其中包含用來產生此物件的 HLSL 編譯器版本、描述著色器所使用之常數緩衝區記憶體配置、輸入和輸出簽章,以及資源系結點的批註。

以下是反組譯已編譯著色器的範例。 此範例假設您一開始會以編譯的著色器 (顯示為 pVSBuf ,您可以在 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 );
        }
    }
}

規格需求

需求
標頭
D3DX10Core.h

另請參閱

常規用途函式