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除外。 因此,如果驱动程序在调用 pfnSetErrorCb 函数时传递了除D3DDDIERR_DEVICEREMOVED以外的任何错误,则 Direct3D 运行时将确定错误严重。 即使删除了设备,驱动程序也不需要返回D3DDDIERR_DEVICEREMOVED;但是,如果设备删除干扰了 SetPredication (通常不应在) 发生的操作,驱动程序可以返回D3DDDIERR_DEVICEREMOVED。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Vista 和更高版本的 Windows 操作系统中可用。 |
目标平台 | 桌面 |
标头 | d3d10umddi.h (包括 D3d10umddi.h) |