Wat is 2D OpenGL®?
De Open Graphics Library® (OpenGL®) is in de eerste plaats een programmeerinterface waarmee softwaretoepassingen kunnen communiceren met grafische hardware en snel en efficiënt driedimensionale (3D) scènes kunnen maken. Met behulp van tweedimensionale (2D) OpenGL®-programmeertechnieken kan de hardwareversnelling van de bibliotheek de prestaties verbeteren en soms het gemak van programmeersoftware die niet noodzakelijkerwijs 3D-modellen of transformaties gebruikt. De meest gebruikelijke methode om 2D OpenGL® te gebruiken, is om vierhoeken of rechthoeken te tekenen met een afbeelding, waardoor een object in 3D-ruimte effectief uit een afbeelding wordt gecreëerd. Eenmaal vastgesteld, kunnen deze vierhoeken worden gemanipuleerd, hetzij met strikte 2D-methoden of door te worden getransformeerd met 3D-matrices voor speciale effecten die anders moeilijk te doen zouden zijn met alleen 2D rasterafbeeldingen. Er zijn enkele complicaties die het gebruik van een 3D-bibliotheek met zich meebrengt wanneer deze alleen voor 2D-afbeeldingen wordt gebruikt, waaronder hyperprecisie die het complex kan maken om locaties met één pixel te isoleren, en ook wat ondersteuning voor 3D-hardware vereist voor een programma dat mogelijk niet echt vereist het.
Veel hardware- en softwareontwikkelaars bieden stuurprogramma's en aangepaste abstracte programmeerinterfaces (API's) die hun specifieke producten volledig compatibel maken met de OpenGL®-bibliotheek. Deze brede acceptatie van een open standaard biedt programmeurs een manier om rechtstreeks toegang te krijgen tot de hardware op een grote verscheidenheid aan systemen. De hardwareversnelling die wordt geboden bij het gebruik van 2D OpenGL® kan ervoor zorgen dat een programma soepeler wordt uitgevoerd dan anders mogelijk zou zijn. Deze snelheid wordt gecompenseerd door het feit dat het gebruik van de OpenGL®-pijplijn voor grafische afbeeldingen heel anders kan zijn dan het gebruik van traditionele 2D-programmeermethoden die over het algemeen geen state-machine-model gebruiken zoals OpenGL®.
De meeste 2D OpenGL®-programma's gebruiken platte rechthoeken die in dezelfde verhoudingen zijn gemaakt als een textuurafbeelding om de afbeeldingen af te beelden. Dit heeft het voordeel dat het zeer snel kan worden weergegeven en dat het programmeren kan worden vereenvoudigd, zodat het dezelfde logica gebruikt als gebufferde grafische afbeeldingen op basis van rasters. Sommige effecten, zoals het schalen van een afbeelding, het roteren van een afbeelding of het omkeren van een afbeelding, kunnen zelfs veel efficiënter worden uitgevoerd met OpenGL®.
Er zijn bepaalde factoren die ervoor kunnen zorgen dat 2D OpenGL®-programma's complexer zijn dan andere 2D-programma's normaal zijn. Een van deze factoren is de precisie van pixels op het scherm. OpenGL® stelt een deel van het virtuele coördinatensysteem niet gelijk aan één pixel op een scherm, zoals rasterafbeeldingen doen, dus zwevende kommagetallen moeten soms worden gebruikt voor schermcoördinaten om gaten in de weergave of vreemde pixelplaatsingen te voorkomen.
Een ander probleem is dat OpenGL® het gebruik van een grafische kaart vereist om de weergavesnelheid te verhogen. Als een toepassing OpenGL® gebruikt voor de weergave van een interface of systeemvenster, kunnen apparaten zonder grafische versnelling prestaties verliezen voor grafische afbeeldingen die voor een eindgebruiker erg basic lijken. OpenGL biedt ook geen native ondersteuning voor het weergeven van tekst, wat betekent dat voor het weergeven van grote delen tekst een behoorlijke hoeveelheid aangepaste code nodig kan zijn.