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 );
}
}
}
規格需求
需求 | 值 |
---|---|
標頭 |
|
另請參閱