PFND3D10DDI_SETPREDICATION回调函数 (d3d10umddi.h)
SetPredication 函数指定是否实际执行以下呈现和资源作命令。
语法
PFND3D10DDI_SETPREDICATION Pfnd3d10ddiSetpredication;
void Pfnd3d10ddiSetpredication(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HQUERY unnamedParam2,
BOOL unnamedParam3
)
{...}
参数
unnamedParam1
hDevice [in]
显示设备的句柄(图形上下文)。
unnamedParam2
hQuery [in]
要设置为谓词的查询对象的句柄。 将 hQuery 设置为 NULL 表示“无谓词”。 如果 hQuery 设置为 NULL,驱动程序将忽略 PredicateValue 参数中的值;但是,驱动程序应存储针对该值的后续请求的谓词值。
unnamedParam3
PredicateValue [in]
要与查询数据进行比较的布尔值。 如果查询数据等于谓词值,则不会执行以下呈现和资源作命令。
返回值
没有
言论
驱动程序可以使用 pfnSetErrorCb 回调函数来设置错误代码。
某些谓词只是提示;因此,它们实际上可能不会阻止执行作。 Microsoft Direct3D 运行时主要调用 SetPredication,让应用程序发出图形命令,而无需执行旋转的性能命中,并等待调用 QueryGetData 函数返回。 因此,即使 QueryGetData 返回S_FALSE,也可能发生谓词。 换句话说,如果 QueryGetData 可能返回S_FALSE,应用程序也可以使用谓词作为回退。 如果 QueryGetData 返回S_OK,应用程序可以使用自己的应用程序逻辑手动跳过调用图形命令。
驱动程序不应遇到任何错误,除非D3DDDIERR_DEVICEREMOVED。 因此,如果驱动程序通过除D3DDDIERR_DEVICEREMOVED以外的任何错误,在调用 pfnSetErrorCb 函数时,Direct3D 运行时将确定错误至关重要。 即使设备已删除,驱动程序也不需要返回D3DDDIERR_DEVICEREMOVED;但是,如果设备删除干扰了 SetPredication(通常不应发生),驱动程序可以返回D3DDDIERR_DEVICEREMOVED。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows Vista 和更高版本的 Windows作系统中可用。 |
目标平台 | 桌面 |
标头 | d3d10umddi.h (包括 D3d10umddi.h) |