Open Graphics Library® (OpenGL®) är i första hand ett programmeringsgränssnitt som tillåter mjukvaruapplikationer att interagera med grafikhårdvara och skapa tredimensionella (3D) scener snabbt och effektivt. Genom att använda tvådimensionella (2D) OpenGL®-programmeringstekniker kan hårdvaruaccelerationen som tillhandahålls av biblioteket förbättra prestandan och, ibland, enklare programmeringsmjukvara som inte nödvändigtvis använder 3D-modeller eller transformationer. Den vanligaste metoden för att använda 2D OpenGL® är att rita fyrhörningar, eller rektanglar, som är strukturerade med en bild, vilket effektivt skapar ett objekt i 3D-rymden ur en bild. När de väl är etablerade kan dessa fyrhörningar 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 enbart 2D-rastergrafik. Det finns vissa komplikationer som att använda ett 3D-bibliotek medför när det endast används för 2D-grafik, inklusive hyperprecision som kan göra det komplicerat att isolera enpixelplatser, samt kräva lite 3D-hårdvarustöd för ett program som kanske inte riktigt kräver Det.
Många hårdvaru- och mjukvaruutvecklare tillhandahåller drivrutiner och anpassade abstrakta programmeringsgränssnitt (API) som gör deras specifika produkter helt kompatibla med OpenGL®-biblioteket. Denna utbredda acceptans av en öppen standard ger programmerare ett sätt att direkt komma åt hårdvaran på en mängd olika system. Hårdvaruaccelerationen som tillhandahålls när du använder 2D OpenGL® kan tillåta ett program att köras smidigare än annars skulle vara möjligt. Denna hastighet balanseras av det faktum att användningen av OpenGL® pipeline för grafik kan skilja sig mycket från att använda traditionella 2D-programmeringsmetoder som i allmänhet inte använder en tillståndsmaskinmodell som OpenGL® gör.
De flesta 2D OpenGL®-program använder platta rektanglar som är gjorda i samma proportioner som en texturbild för att porträttera grafiken. Detta har fördelen att det är väldigt snabbt att rendera, samt att det förenklar programmeringen så att det använder lite av samma logik som rasterbaserad buffrad grafik. Vissa effekter, som att skala en bild, rotera en bild eller vända en 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 vad andra 2D-program normalt kan vara. En av dessa faktorer är precisionen hos pixlar på skärmen. OpenGL® likställer inte en del av det virtuella koordinatsystemet med en pixel på en skärm, som rastergrafik gör, så flyttal måste ibland användas för skärmkoordinater för att förhindra luckor i skärmen eller konstiga pixelplaceringar.
Ett annat problem ä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 prestandaförlust för grafik som kan verka väldigt grundläggande för en slutanvändare. OpenGL tillhandahåller inte heller något inbyggt stöd för att visa text, vilket innebär att visning av stora områden med text kan kräva en hel del anpassad kod.