使用状态刷新回调函数

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

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

例如,当驱动程序在对驱动程序的IaSetIndexBuffer函数的调用中时,用户模式显示驱动程序可能会调用pfnStateIaIndexBufCb状态刷新回调函数。 此调用是可能的,尤其是因为用户模式显示驱动程序可以使用 pfnStateIaIndexBufCb 回调函数来生成前导码,而对 IaSetIndexBuffer 的调用可能会耗尽命令缓冲区的大小并导致刷新。 对于这种情况,调用 pfnStateIaIndexBufCb 会传递与对 IaSetIndexBuffer的原始调用相同的 "新" 绑定信息。 这种情况会导致更好的前导码。