PFND3D11DDI_SETSHADER_WITH_IFACES回调函数 (d3d10umddi.h)

CsSetShaderWithIfaces 函数设置计算着色器代码以及一组接口,以便所有后续调度作都使用该代码和这些接口。

语法

PFND3D11DDI_SETSHADER_WITH_IFACES Pfnd3d11ddiSetshaderWithIfaces;

void Pfnd3d11ddiSetshaderWithIfaces(
       D3D10DDI_HDEVICE unnamedParam1,
       D3D10DDI_HSHADER unnamedParam2,
  [in] UINT NumClassInstances,
       const UINT *unnamedParam4,
       const D3D11DDIARG_POINTERDATA *unnamedParam5
)
{...}

参数

unnamedParam1

hDevice [in]

显示设备的句柄(图形上下文)。

unnamedParam2

hShader [in]

计算着色器代码对象的句柄。

[in] NumClassInstances

接口实现的类实例数。

unnamedParam4

pPointerData [in]

D3D11DDIARG_POINTERDATA 结构的数组。 每个结构描述分配给接口实现的类实例引用的数据的位置。 数组中的元素数由 NumClassInstances 参数指定。

unnamedParam5

pIfaces [in]

函数表标识符的数组。 每个标识符对应于分配给接口实现的类实例。 数组中的元素数由 NumClassInstances 参数指定。

返回值

没有

言论

驱动程序可以使用 pfnSetErrorCb 回调函数来设置错误代码。

接口实现的每个类实例都有以下信息:

  • 与该类实例关联的代码
  • 该类实例使用的数据的位置
NumClassInstances 参数指定在运行时必须分配值的接口数。 对于每个接口,pIfaces 数组的每个元素都提供函数表标识符,pPointerData 数组的每个元素都为分配给接口的类实例提供数据位置。

驱动程序可以在调用 pfnSetErrorCb 函数时传递E_OUTOFMEMORY(如果驱动程序内存不足)或D3DDDIERR_DEVICEREMOVED(如果设备已删除)。 Direct3D 运行时确定任何其他错误都至关重要。 如果驱动程序通过任何错误(包括D3DDDIERR_DEVICEREMOVED),Direct3D 运行时将确定句柄无效;因此,运行时不调用 DestroyShader 函数来销毁 hShader 参数指定的句柄。

GsSetShaderWithIfaces 函数设置几何着色器代码以及一组接口,以便所有后续绘图作都使用该代码和这些接口。

PsSetShaderWithIfaces 函数设置像素着色器代码以及一组接口,以便所有后续绘图作都使用该代码和这些接口。

DsSetShaderWithIfaces 函数设置域着色器代码以及一组接口,以便所有后续绘图作都使用该代码和这些接口。

HsSetShaderWithIfaces 函数设置外壳着色器代码以及一组接口,以便所有后续绘图作都使用该代码和这些接口。

VsSetShaderWithIfaces 函数设置顶点着色器代码以及一组接口,以便所有后续绘图作都使用该代码和这些接口。

要求

要求 价值
最低支持的客户端 从 Windows 7作系统开始,支持 CsSetShaderWithIfaces。
目标平台 桌面
标头 d3d10umddi.h (包括 D3d10umddi.h)

另请参阅

D3D11DDIARG_POINTERDATA

D3D11DDI_DEVICEFUNCS

DestroyShader

pfnSetErrorCb