Condividi tramite


Abilitazione dei canali alfa in Full-Screen buffer back

In DirectDraw DDI la creazione di una catena di scorrimento primaria non ha alcun formato di pixel intrinseco. Di conseguenza, le superfici in questa catena prendono il formato pixel della modalità di visualizzazione. Ad esempio, una catena di scorrimento primaria creata in modalità 32bpp assume un formato D3DFMT_X8R8G8B8.

Tale catena viene creata per molte applicazioni a schermo intero. Poiché il buffer posteriore della catena non ha alcun canale alfa, lo stato di rendering D3DRS_ALPHABLENDENABLE e gli stati di rendering di blend associati per le superfici di destinazione sono scarsamente definiti. DirectX 8.1 introduce una nuova funzionalità usata dal runtime Direct3D per informare un driver della richiesta di un'applicazione di creare una catena di scorrimento a schermo intero di superfici con un canale alfa nei formati pixel di tali superfici.

Per indicare il supporto di questa funzionalità, il driver deve impostare il bit di D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD (definito nel file d3d8caps.h ) nel membro Caps3 della struttura D3DCAPS8. Il driver restituisce una struttura D3DCAPS8 in risposta a una query GetDriverInfo2 , come descritto in Reporting DirectX 8.0 Style Direct3D Capabilities. Il supporto di questa query è descritto in Supporto di GetDriverInfo2.

Dopo aver determinato il supporto di questa funzionalità, il driver può ricevere chiamate DdCreateSurface con il DDSCAPS2_ENABLEALPHACHANNEL (definito nel file ddraw.h ) impostato nel membro dwCaps2 della struttura DDSCAPS2 . Questo bit è impostato solo per creare superfici che fanno parte di una catena di scorrimento primaria o che si trovano in buffer back autonomi.

Se il driver rileva questo bit, il driver determina che le superfici non assumono il formato della modalità di visualizzazione, ma il formato della modalità di visualizzazione più alfa. Ad esempio, in modalità 32bpp, tali superfici devono essere fornite il formato D3DFMT_A8R8G8B8.

Questa funzionalità è disponibile in Windows XP e versioni successive e nelle versioni del sistema operativo Windows 2000 che hanno installato il runtime DirectX 8.1.