Utilisation des fonctions de rappel State-Refresh
Le pilote d’affichage en mode utilisateur peut utiliser la version 10 du runtime Direct3D State-Refresh fonctions de rappel pour obtenir un pilote sans état ou pour créer des données de préambule de mémoire tampon de commande.
Le runtime Direct3D fournit des pointeurs vers ses fonctions de rappel d’actualisation d’état dans la structure D3D10DDI_CORELAYER_DEVICECALLBACKS vers laquelle pointe le membre pUMCallbacks de la structure D3D10DDIARG_CREATEDEVICE dans un appel à la fonction CreateDevice(D3D10).
Le pilote d’affichage en mode utilisateur peut appeler, par exemple, la fonction de rappel d’actualisation de l’état pfnStateIaIndexBufCb , tandis que le pilote se trouve dans un appel à la fonction IaSetIndexBuffer du pilote. Cet appel est tout à fait possible, en particulier parce que le pilote d’affichage en mode utilisateur peut utiliser la fonction de rappel pfnStateIaIndexBufCb pour générer un préambule, et que l’appel à IaSetIndexBuffer peut épuiser la taille de la mémoire tampon de commandes et provoquer un vidage. Pour une telle situation, l’appel à pfnStateIaIndexBufCb transmet les mêmes informations de liaison « new » que l’appel d’origine à IaSetIndexBuffer. Cette situation aboutit à un préambule plus optimal.