PFND3D10DDI_SETRENDERTARGETS回调函数 (d3d10umddi.h)

SetRenderTargets 回调函数设置呈现目标图面。

语法

PFND3D10DDI_SETRENDERTARGETS Pfnd3d10ddiSetrendertargets;

void Pfnd3d10ddiSetrendertargets(
  [in] D3D10DDI_HDEVICE unnamedParam1,
  [in] const D3D10DDI_HRENDERTARGETVIEW *unnamedParam2,
  [in] UINT NumViews,
  [in] UINT ClearSlots,
  [in] D3D10DDI_HDEPTHSTENCILVIEW unnamedParam5
)
{...}

参数

[in] unnamedParam1

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

[in] unnamedParam2

phRenderTargetView:要设置的呈现目标视图对象的句柄数组。 请注意,某些句柄值可以 NULL

[in] NumViews

phRenderTargetView 指定的数组中的元素数。

[in] ClearSlots

NumViews 指定设置为 NULL NULL 的槽数之后的呈现目标槽数。 此数字表示先前的呈现目标视图对象数(即,Microsoft Direct3D 运行时之前调用 SetRenderTargets)和新数量的呈现目标视图对象之间的差异。

请注意,ClearTargets 指定的数字只是优化帮助,因为用户模式显示驱动程序可以计算此数字。

[in] unnamedParam5

hDepthStencilView:深度模具视图的句柄。

返回值

没有

言论

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

用户模式显示驱动程序必须以原子方式将所有呈现目标图面和深度模具缓冲区设置为一个作。

尽管 NumViews 参数指定数组中 phRenderTargetView 参数指定的句柄数,但数组中的某些句柄值可以 NULL

NumViews 指定的数量和允许的最大呈现目标图面数之间的呈现目标图面范围,需要包含所有 NULL 或未绑定值。 ClearTargets 参数指定的数字告知驱动程序驱动程序当前原子作必须清除的绑定点数。

如果对 SetRenderTargets 的上一次调用NumViews 参数中传递了值 2,并且对 SetRenderTargets 传递当前调用 NumViews中的值 4,当前对 setRenderTargets 的调用还会在 clearTargets 参数的 中传递值 0。 如果对 SetRenderTargets 的下一次连续调用 传递 NumViews中的值 1,则连续调用还会在 clearTargets中传递值 3(4 - 1)。

当用户模式查询作期间请求清除目标的值时,该值是呈现目标图面的最大数目与呈现目标值之间的差异。

驱动程序不应遇到任何错误,除非D3DDDIERR_DEVICEREMOVED。 因此,如果驱动程序在调用 pfnSetErrorCb 函数时传递任何错误(D3DDDIERR_DEVICEREMOVED除外)时,Microsoft Direct3D 运行时将确定错误至关重要。 即使设备已删除,驱动程序也不需要返回D3DDDIERR_DEVICEREMOVED;但是,如果设备删除干扰了 SetRenderTargets(通常不应发生),驱动程序可以返回D3DDDIERR_DEVICEREMOVED。

要求

要求 价值
最低支持的客户端 在 Windows Vista 和更高版本的 Windows作系统中可用。
目标平台 桌面
标头 d3d10umddi.h (包括 D3d10umddi.h)

另请参阅

D3D10DDI_DEVICEFUNCS

pfnSetErrorCb