D3D10DisassembleEffect 函数 (d3d10effect.h)

此函数已弃用,该函数将编译后的效果反汇编为包含程序集指令和寄存器赋值的文本字符串。 请改用 D3DDisassemble10Effect

语法

HRESULT D3D10DisassembleEffect(
  [in]  ID3D10Effect *pEffect,
  [in]  BOOL         EnableColorCode,
  [out] ID3D10Blob   **ppDisassembly
);

参数

[in] pEffect

类型: ID3D10Effect*

指向 ID3D10Effect 接口的指针,其中包含编译后的效果。

[in] EnableColorCode

类型: BOOL

在输出中包含 HTML 标记以对结果进行颜色编码。

[out] ppDisassembly

类型: ID3D10Blob**

指向 ID3D10Blob 接口 的指针,该接口包含反汇编的着色器。

返回值

类型: HRESULT

返回以下 Direct3D 10 返回代码之一。

备注

此返回的文本包括一个标头,其中包含用于生成此对象的 HLSL 编译器版本、描述着色器使用的常量缓冲区的内存布局的注释、输入和输出签名以及资源绑定点。

下面是反汇编已编译效果的示例。 本示例假定你从一个编译后的效果开始, (显示为 l_pBlob_Effect 你可以在编译 效果 (Direct3D 10) ) 中看到该效果。


LPCSTR commentString = NULL;
ID3D10Blob* pIDisassembly = NULL;
char* pDisassembly = NULL;
if( pVSBuf )
{
    D3D10DisassembleEffect( (UINT*) l_pBlob_Effect->GetBufferPointer(),
        l_pBlob_Effect->GetBufferSize(), TRUE, commentString, &pIDisassembly );
    if( pIDisassembly )
    {
        FILE* pFile = fopen( "effect.htm", "w" );
        if( pFile)
        {
            fputs( (char*)pIDisassembly->GetBufferPointer(), pFile );
            fclose( pFile );
        }
    }
}

要求

   
目标平台 Windows
标头 d3d10effect.h
Library D3D10.lib
DLL D3D10.dll

另请参阅

Direct3D 10) (效果函数