使用状态刷新回调函数

用户模式显示驱动程序可以使用 Direct3D 运行时版本 10 State-Refresh回调函数 来实现无状态驱动程序或构建命令缓冲区前导数据。

Direct3D 运行时在调用 CreateDevice (D3D10 ) 函数时,向D3D10DDIARG_CREATEDEVICE结构的 pUMCallbacks 成员指向的D3D10DDI_CORELAYER_DEVICECALLBACKS结构中的状态刷新回调函数提供指针。

例如,用户模式显示驱动程序可能会调用 pfnStateIaIndexBufCb 状态刷新回调函数,而驱动程序位于对驱动程序的 IaSetIndexBuffer 函数的调用中。 此调用是很有可能的,特别是因为用户模式显示驱动程序可能使用 pfnStateIaIndexBufCb 回调函数来生成前言,而对 IaSetIndexBuffer 的调用可能会耗尽命令缓冲区的大小并导致刷新。 在这种情况下,对 pfnStateIaIndexBufCb 的调用会传递与对 IaSetIndexBuffer 的原始调用相同的“新”绑定信息。 这种情况会导致更优化的序言。