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)

另请参阅

D3D10DDI_DEVICEFUNCS

pfnSetErrorCb