Share via


Activation des canaux alpha sur les mémoires tampons d’arrière-Full-Screen

Dans la DDI DirectDraw, la création d’une chaîne de basculement primaire n’a pas de format de pixel intrinsèque. Par conséquent, les surfaces de cette chaîne prennent le format de pixels du mode d’affichage. Par exemple, une chaîne de basculement principale créée en mode 32bpp prend un format D3DFMT_X8R8G8B8.

Une telle chaîne est créée pour de nombreuses applications plein écran. Étant donné que la mémoire tampon d’arrière-mémoire de la chaîne n’a pas de canal alpha, l’état de rendu D3DRS_ALPHABLENDENABLE et les états blend-render associés pour les surfaces de destination sont mal définis. DirectX 8.1 introduit une nouvelle fonctionnalité que le runtime Direct3D utilise pour informer un pilote de la demande d’une application de créer une chaîne de basculement en plein écran de surfaces avec un canal alpha dans les formats de pixels de ces surfaces.

Pour indiquer la prise en charge de cette fonctionnalité, le pilote doit définir le bit D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD (défini dans le fichier d3d8caps.h ) dans le membre Caps3 de la structure D3DCAPS8. Le pilote retourne une structure D3DCAPS8 en réponse à une requête GetDriverInfo2 , comme décrit dans Reporting DirectX 8.0 Style Direct3D Capabilities. La prise en charge de cette requête est décrite dans Prise en charge de GetDriverInfo2.

Une fois la prise en charge de cette fonctionnalité déterminée, le pilote peut recevoir des appels DdCreateSurface avec le bit DDSCAPS2_ENABLEALPHACHANNEL (défini dans le fichier ddraw.h ) défini dans le membre dwCaps2 de la structure DDSCAPS2 . Ce bit est uniquement défini pour créer des surfaces qui font partie d’une chaîne de retournement principale ou qui se trouvent sur des mémoires tampons arrière autonomes.

Si le pilote détecte ce bit, le pilote détermine que les surfaces prennent non pas le format du mode d’affichage, mais le format alpha du mode d’affichage. Par exemple, en mode 32 bpp, ces surfaces doivent être au format D3DFMT_A8R8G8B8.

Cette fonctionnalité est disponible sur Windows XP et versions ultérieures, ainsi que sur les versions de système d’exploitation Windows 2000 sur laquelle le runtime DirectX 8.1 est installé.