Što je 2D OpenGL®?

Open Graphics Library® (OpenGL®) prvenstveno je programsko sučelje koje omogućuje softverskim aplikacijama interakciju s grafičkim hardverom i stvaranje trodimenzionalnih (3D) scena brzo i učinkovito. Koristeći dvodimenzionalne (2D) OpenGL® tehnike programiranja, hardversko ubrzanje koje pruža knjižnica može poboljšati performanse i, ponekad, jednostavnost programskog softvera koji ne koristi nužno 3D modele ili transformacije. Najčešća metoda korištenja 2D OpenGL® je crtanje četverokuta ili pravokutnika koji su teksturirani slikom, učinkovito stvarajući objekt u 3D prostoru iz slike. Kada se jednom uspostave, ovim se četverokutima može manipulirati, bilo strogim 2D metodama ili transformacijom s 3D matricama za posebne efekte koje bi inače bilo teško napraviti samo s 2D rasterskom grafikom. Postoje neke komplikacije koje korištenje 3D knjižnice donosi kada se koristi samo za 2D grafiku, uključujući hiper-preciznost koja može učiniti složenim izolaciju lokacija od jednog piksela, kao i zahtjevnu 3D hardversku podršku za program koji možda i ne zahtijeva to.

Mnogi programeri hardvera i softvera pružaju upravljačke programe i prilagođena apstraktna programska sučelja (API) koja njihove određene proizvode čine potpuno kompatibilnim s bibliotekom OpenGL®. Ovo široko prihvaćanje otvorenog standarda daje programerima način za izravan pristup hardveru na velikom broju sustava. Hardversko ubrzanje koje se pruža pri korištenju 2D OpenGL® može omogućiti da program radi glatko nego što bi inače bilo moguće. Ova brzina je uravnotežena činjenicom da korištenje OpenGL® cjevovoda za grafiku može biti vrlo različito od korištenja tradicionalnih metoda 2D programiranja koje općenito ne koriste model državnog stroja kao što to radi OpenGL®.

Većina 2D OpenGL® programa koristi ravne pravokutnike koji su napravljeni u istim omjerima kao i slika teksture za prikaz grafike. Ovo ima prednost što se vrlo brzo renderira, kao i pojednostavljuje programiranje tako da koristi istu logiku kao i rasterska grafika u međuspremniku. Neki efekti, poput skaliranja slike, rotacije slike ili preokretanja slike, zapravo se mogu mnogo učinkovitije izvesti korištenjem OpenGL®-a.

Postoje određeni čimbenici koji mogu uzrokovati da 2D OpenGL® programi budu složeniji od ostalih 2D programa koji bi inače mogli biti. Jedan od tih čimbenika je preciznost piksela na zaslonu. OpenGL® ne izjednačava jedan dio virtualnog koordinatnog sustava s jednim pikselom na zaslonu, kao što to čini rasterska grafika, pa se brojevi s pomičnim zarezom ponekad moraju koristiti za koordinate zaslona kako bi se spriječile praznine u prikazu ili čudno postavljanje piksela.

Drugi je problem što OpenGL® zahtijeva korištenje grafičke kartice za povećanje brzine renderiranja. Ako aplikacija koristi OpenGL® za prikaz sučelja ili prozora sustava, uređaji koji nemaju grafičko ubrzanje mogu pretrpjeti gubitak performansi za grafiku koja se krajnjem korisniku može činiti vrlo osnovnom. OpenGL također ne pruža nikakvu izvornu podršku za prikaz teksta, što znači da bi prikazivanje velikih područja teksta moglo zahtijevati priličnu količinu prilagođenog koda.