PFND3D10DDI_SETSCISSORRECTS回调函数 (d3d10umddi.h)
SetScissorRects 函数标记呈现目标限制在一起的部分。
语法
PFND3D10DDI_SETSCISSORRECTS Pfnd3d10ddiSetscissorrects;
void Pfnd3d10ddiSetscissorrects(
D3D10DDI_HDEVICE unnamedParam1,
[in] UINT NumRects,
[in] UINT ClearRects,
const D3D10_DDI_RECT *unnamedParam4
)
{...}
参数
unnamedParam1
hDevice [in]
显示设备的句柄(图形上下文)。
[in] NumRects
pRects 参数指定的呈现目标部分总数。
[in] ClearRects
NumScissorRects 指定 为 NULL的呈现目标部分数之后的呈现目标部分数。 此数字表示以前的呈现目标部分数(即,Microsoft Direct3D 运行时之前调用 SetScisorRects)和新数量的呈现目标部分之间的差异。
请注意,ClearScissorRects 指定的数字只是优化帮助,因为用户模式显示驱动程序可以计算此数字。
unnamedParam4
pRects [in]
要标记的呈现目标部分 结构 RECT 数组。
返回值
没有
言论
驱动程序可以使用 pfnSetErrorCb 回调函数来设置错误代码。
D3D10_DDI_RECT结构定义为 RECT 结构。
typedef RECT D3D10_DDI_RECT;
用户模式显示驱动程序必须以原子方式将所有呈现目标部分设置为一个作。
尽管 NumScissorRects 参数指定数组中 pRects 参数指定的呈现目标部分数,但数组中的某些值可以 NULL。
NumScisorRects 的数字之间的呈现目标部分范围,以及允许的最大呈现目标部分数,必须包含所有 NULL 或未绑定值。 ClearScisorRects 参数指定的数字告知驱动程序驱动程序当前原子作必须清除的呈现目标部分数。
如果上一次调用 SetScissorRects 传递了 NumScisorRects 参数中的值 2,并且对 SetScissorRects 的当前调用 传递了 NumScissorRects中的值 4,当前对 SetScissorRects 调用也会在 ClearScissorRects 参数中传递值 0。 如果下一次调用 SetScisorRects 传递 NumScisorRects中的值 1,则后续调用在 ClearScisorRects中也会传递值 3(4 - 1)。
当用户模式查询作期间请求清除呈现目标部分的值时,该值是呈现目标部分的最大数目与呈现目标部分值之间的差异。
驱动程序不应遇到任何错误,除非D3DDDIERR_DEVICEREMOVED。 因此,如果驱动程序在调用 pfnSetErrorCb 函数时传递任何错误(D3DDDIERR_DEVICEREMOVED除外)时,Microsoft Direct3D 运行时将确定错误至关重要。 即使设备已删除,驱动程序也不需要返回D3DDDIERR_DEVICEREMOVED;但是,如果设备删除干扰了 SetScisorRects(通常不应发生),驱动程序可以返回D3DDDIERR_DEVICEREMOVED。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows Vista 和更高版本的 Windows作系统中可用。 |
目标平台 | 桌面 |
标头 | d3d10umddi.h (包括 D3d10umddi.h) |