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)

另请参阅

D3D10DDI_DEVICEFUNCS

pfnSetErrorCb