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 的槽数之后的呈现目标槽数。 此数字表示以前数量的呈现器目标视图对象 (即以前调用 SetRenderTargets 的 Microsoft Direct3D 运行时) 和呈现目标视图对象的新数目之间的差异。
请注意, 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) |