2009-02-05 4 views
4

Dans une application DirectX 10, la commutation entre le mode plein écran et le mode fenêtré entraîne-t-elle des frais généraux tels que la recréation de textures et/ou de vertexbuffers? En d'autres termes, est-ce que je peux créer une application conçue pour faire beaucoup de basculement entre le mode fenêtré et le mode plein écran sans avoir à subir une atteinte de performance lorsque les commutations se produisent?Commutation et performances du mode vidéo DirectX 10

Répondre

6

Dans DirectX10, il y a DXGI. Vous utilisez une chaîne d'échange. Le tampon de la chaîne d'échange devra être redimensionné de sorte qu'il y ait des frais généraux (bien sûr), mais il est censé être optimisé. Ce qui m'inquiète, c'est de provoquer des crises d'épilepsie chez vos utilisateurs en changeant de mode d'affichage.

http://msdn.microsoft.com/en-us/library/bb205075(VS.85).aspx

+0

S'il vous plaît permettez-moi de m'inquiéter de la convivialité et de la conception de ce que j'essaie de créer. Je demandais une réponse technique. – korona

+0

Allez-y, je ne vous arrête pas. Je vous ai donné une réponse technique et une préoccupation. – Chap

2

En D3D10, vous n'avez pas besoin de recréer vos textures, des tampons ou des ressources D3D sur le commutateur de mode. Une exception notable est que les références de backbuffer de swapchain doivent être mises à jour après l'appel de ResizeBuffers (ce qui devrait être fait pour des performances optimales en plein écran), mais ce n'est pas un gros problème en termes de performances.

Cependant, cela ne signifie pas que le changement de mode est bon marché. L'opération de changement de mode elle-même est très coûteuse à la fois pour votre application et le reste du système (en particulier, dans Vista, DWM doit être redémarré). Win7 s'est beaucoup amélioré, donc je vous suggère de jouer avec et de voir si cela répond à vos exigences de performance, mais ne vous attendez pas à une transition instantanée.

Questions connexes