Che cos'è OpenGL® 2D?
Open Graphics Library® (OpenGL®) è principalmente un'interfaccia di programmazione che consente alle applicazioni software di interagire con l'hardware grafico e creare scene tridimensionali (3D) in modo rapido ed efficiente. Utilizzando tecniche di programmazione OpenGL® bidimensionali (2D), l'accelerazione hardware fornita dalla libreria può migliorare le prestazioni e, a volte, la facilità di programmazione di software che non utilizza necessariamente modelli o trasformazioni 3D. Il metodo più comune per utilizzare 2D OpenGL® è disegnare quadrilateri, o rettangoli, che sono strutturati con un'immagine, creando efficacemente un oggetto nello spazio 3D da un'immagine. Una volta stabiliti, questi quadrilateri possono essere manipolati, con rigorosi metodi 2D o trasformati con matrici 3D per effetti speciali che altrimenti sarebbero difficili da fare con solo grafica raster 2D. Ci sono alcune complicazioni che l'uso di una libreria 3D comporta quando la si impiega solo per la grafica 2D, inclusa l'iper-precisione che può rendere complessa l'isolamento di posizioni a singolo pixel, oltre a richiedere un supporto hardware 3D per un programma che potrebbe non richiedere davvero esso.
Molti sviluppatori hardware e software forniscono driver e interfacce di programmazione astratte personalizzate (API) che rendono i loro prodotti particolari pienamente compatibili con la libreria OpenGL®. Questa diffusa accettazione di uno standard aperto offre ai programmatori un modo per accedere direttamente all'hardware su una grande varietà di sistemi. L'accelerazione hardware fornita quando si utilizza 2D OpenGL® può consentire a un programma di funzionare in modo più fluido di quanto altrimenti sarebbe possibile. Questa velocità è bilanciata dal fatto che l'utilizzo della pipeline OpenGL® per la grafica può essere molto diverso dall'uso dei tradizionali metodi di programmazione 2D che generalmente non impiegano un modello di macchina a stati come OpenGL®.
La maggior parte dei programmi 2D OpenGL® utilizza rettangoli piatti realizzati nelle stesse proporzioni di un'immagine di trama per ritrarre la grafica. Questo ha il vantaggio di essere molto veloce nel rendering, oltre a semplificare la programmazione in modo da usare un po 'della stessa logica della grafica bufferizzata basata su raster. Alcuni effetti, come il ridimensionamento di un'immagine, la rotazione di un'immagine o l'inversione di un'immagine, possono effettivamente essere eseguiti in modo molto più efficiente utilizzando OpenGL®.
Ci sono alcuni fattori che possono rendere i programmi 2D OpenGL® più complessi di quanto potrebbero essere normalmente altri programmi 2D. Uno di questi fattori è la precisione dei pixel sul display. OpenGL® non equipara una parte del sistema di coordinate virtuale a un pixel su uno schermo, come fanno la grafica raster, quindi a volte i numeri in virgola mobile devono essere usati per le coordinate dello schermo per evitare lacune nella visualizzazione o strani posizionamenti dei pixel.
Un altro problema è che OpenGL® richiede l'uso di una scheda grafica per aumentare la velocità di rendering. Se un'applicazione utilizza OpenGL® per la visualizzazione di un'interfaccia o una finestra di sistema, i dispositivi che non dispongono di accelerazione grafica potrebbero subire una perdita di prestazioni per la grafica che potrebbe sembrare molto semplice per l'utente finale. OpenGL non fornisce inoltre alcun supporto nativo per la visualizzazione di testo, il che significa che mostrare grandi aree di testo potrebbe richiedere una buona quantità di codice personalizzato.