Condividi tramite


Front, Indietro e Altri buffer

OpenGL archivia e modifica i dati pixel in un framebuffer. Il framebuffer è costituito da un set di buffer logici: buffer di colore, profondità, accumulo e stencil. Il buffer dei colori è costituito da un set di buffer logici; questo set può includere un buffer anteriore a sinistra, un front-right, un back-left, un back-right e un certo numero di buffer ausiliari. Un particolare formato pixel o un'implementazione OpenGL potrebbe non fornire tutti questi buffer. Ad esempio, la versione corrente dell'implementazione di Microsoft di OpenGL in Windows non supporta le immagini stereoscopiche, quindi un formato pixel non può avere buffer di colore sinistro e destro. Inoltre, la versione corrente non supporta buffer ausiliari. Per altre informazioni sui buffer OpenGL e sulle funzioni OpenGL che operano su di essi, vedere OpenGL Reference Manual (Manuale di riferimento openGL ) e OpenGL Programming Guide (Guida per programmatori OpenGL).

L'implementazione di OpenGL in Windows microsoft supporta il doppio buffer delle immagini. Si tratta di una tecnica in cui un'applicazione disegna i pixel in un buffer fuori schermo e quindi, quando tale immagine è pronta per la visualizzazione, copia il contenuto del buffer fuori schermo in un buffer sullo schermo. Il doppio buffering consente modifiche uniformi delle immagini, particolarmente importanti per le immagini animate.

Sono disponibili due buffer a colori per le applicazioni che usano il doppio buffer: un buffer anteriore e un buffer nascosto. Per impostazione predefinita, i comandi di disegno vengono indirizzati al buffer nascosto (buffer fuori schermo), mentre il buffer anteriore viene visualizzato sullo schermo. Quando il buffer fuori schermo è pronto per la visualizzazione, si chiama SwapBuffers e Windows copia il contenuto del buffer fuori schermo nel buffer sullo schermo.

L'implementazione generica usa una bitmap indipendente dal dispositivo (DIB) come buffer nascosto e lo schermo viene visualizzato come buffer anteriore. I dispositivi hardware e i relativi driver possono usare approcci diversi.

Il doppio buffering è una proprietà in formato pixel. Per richiedere il doppio buffering per un formato pixel, impostare il flag PFD_DOUBLEBUFFER nella struttura di dati PIXELFORMATDESCRIPTOR in una chiamata a ChoosePixelFormat.

La funzione principale OpenGL , glDrawBuffer, seleziona i buffer per la scrittura e la cancellazione.

Funzioni buffer