Vad är 2D OpenGL®?
Open Graphics Library® (OpenGL®) är främst ett programmeringsgränssnitt som gör att programvaror kan interagera med grafikhårdvara och skapa tredimensionella (3D) scener snabbt och effektivt. Genom att använda tvådimensionella (2D) OpenGL®-programmeringstekniker kan maskinvaruaccelerationen som tillhandahålls av biblioteket förbättra prestandan och ibland enkel programmeringsprogramvara som inte nödvändigtvis använder 3D-modeller eller transformationer. Den vanligaste metoden för att använda 2D OpenGL® är att rita fyrkantiga eller rektanglar som är strukturerade med en bild och effektivt skapa ett objekt i 3D-utrymme ur en bild. När de har fastställts kan dessa fyrkantiga element manipuleras, antingen med strikta 2D-metoder eller genom att transformeras med 3D-matriser för specialeffekter som annars skulle vara svåra att göra med bara 2D-rastergrafik. Det finns vissa komplikationer som att använda ett 3D-bibliotek ger när man använder det bara för 2D-grafik, inklusive hyperprecision som kan göra det komplext att isolera platser med en pixel samt kräva lite 3D-hårdvarustöd för ett program som kanske inte verkligen kräver den.
Många utvecklare av hårdvara och mjukvara tillhandahåller drivrutiner och anpassade abstrakta programmeringsgränssnitt (API: er) som gör deras specifika produkter helt kompatibla med OpenGL®-biblioteket. Denna breda acceptans av en öppen standard ger programmerare ett sätt att direkt komma åt hårdvaran på ett stort antal olika system. Maskinvaruaccelerationen som tillhandahålls vid användning av 2D OpenGL® kan tillåta ett program att fungera smidigare än annars skulle vara möjligt. Denna hastighet balanseras av det faktum att användning av OpenGL®-pipeline för grafik kan skilja sig mycket från att använda traditionella 2D-programmeringsmetoder som vanligtvis inte använder en tillståndsmaskinmodell som OpenGL® gör.
De flesta 2D OpenGL®-program använder plana rektanglar som är gjorda i samma proportioner som en texturbild för att skildra grafiken. Detta har fördelen att det är väldigt snabbt att återge, såväl som att förenkla programmeringen så att den använder någon av samma logik som rasterbaserad buffrad grafik. Vissa effekter, som skalning av en bild, rotering av en bild eller omvänd bild, kan faktiskt utföras mycket mer effektivt med OpenGL®.
Det finns vissa faktorer som kan göra att 2D OpenGL®-program är mer komplexa än andra 2D-program normalt kan vara. En av dessa faktorer är pixlarnas precision på skärmen. OpenGL® liknar inte en del av det virtuella koordinatsystemet med en pixel på en skärm, som rastergrafik gör, så flyttalsnummer behöver ibland användas för skärmkoordinater för att förhindra luckor i skärmen eller konstiga pixelplaceringar.
En annan fråga är att OpenGL® kräver användning av ett grafikkort för att öka renderingshastigheten. Om ett program använder OpenGL® för visning av ett gränssnitt eller systemfönster, kan enheter som inte har grafikacceleration drabbas av förlust av prestanda för grafik som kan tyckas mycket grundläggande för en slutanvändare. OpenGL ger inte heller något ursprungligt stöd för att visa text, vilket betyder att visning av stora textområden kan kräva en hel del anpassad kod.