Hvad er accelereret OpenGL®-tilstand?
Accelerated Open Graphics Library® (OpenGL®) -tilstand i computergrafik er en tilstand, der kan aktiveres på et computergrafikkort til at bruge hardwarefunktionerne på grafikkortet til at udføre nogle eller alle OpenGL®-kommandoer og gengivelser i stedet for at standardisere til rent softwarebaseret funktionalitet. Ikke alle grafikkort understøtter en hardwareaccelereret OpenGL®-tilstand, og nogle, der understøtter tilstanden, fremskynder ikke alle de kommandoer, der er tilgængelige i OpenGL®-biblioteket. Afhængigt af den hardware og drivere, der bruges i en bestemt computer eller enhed, kan accelereret OpenGL®-tilstand lejlighedsvis faktisk være langsommere end softwaregivelsestilstand, hvad enten det er på grund af konflikter eller bare fordi en computerprocessor er hurtigere end grafikprocessoren. Når du skriver applikationer, der bruger accelereret OpenGL®-tilstand, kan det være vanskeligt at opdage og bruge tilstanden udelukkende, fordi implementeringen af, hvordan man håndterer accelererede tilstande, ikke er standardiseret og kan variere meget fra den ene driver til den næste.
OpenGL®-grafikbiblioteket er et abstrakt programmeringsgrænseflade (API), der giver en buffer mellem grafikhardware og softwaren, der er skrevet for at få adgang til den. Generelt fungerer OpenGL® med en klientservermodel, hvilket betyder, at softwaren bliver en klient, der derefter sender tegningsanmodninger og information til serveren, som normalt er OpenGL®-driveren og hardware. Den driver, der leveres enten af operativsystemet eller grafikkortproducenten, kan variere meget i dens interne implementering, så nogle mere avancerede hardwarefunktioner er ikke altid standardiserede. Hardwareaccelereret OpenGL®-tilstand er en af de funktioner, der overlades til grafikkortproducenterne til implementering.
Når et program bruger hardware-accelereret OpenGL®-tilstand, er det, der faktisk sker, at et OpenGL®-funktionsopkald foretages og sendes til driveren. Hvis driveren registrerer, at acceleration er aktiv, eller at en bestemt operation har direkte hardwarestøtte, overføres funktionen direkte til grafikbehandlingsenheden (GPU), der er placeret på grafikkortet. Hvis der ikke er nogen acceleration, der er aktiv eller til stede, behandles og udføres kommandoen gennem standard softwareopkald og algoritmer. I de fleste tilfælde giver hardwareacceleration meget hurtigere gengivelsestider end ren software.
Nogle grafikkort understøtter en accelereret OpenGL®-tilstand, men kun med en bestemt opløsning og farvedybde. Dette betyder, at et grafikkort muligvis automatisk bruger en accelereret tilstand, hvis det, når et program initialiserer OpenGL®, anmoder om en bestemt opløsning og farvedybde. Grafikhardware kan være meget anderledes, så denne tilstand er ikke altid synlig, og nogle gange kan det være vanskeligt at registrere automatisk inden for et program uden brugerinput. Ud over at driveren og hardware skal understøtte en accelereret OpenGL®-tilstand, skal skærmen eller displayenheden også have oprindelig support til den ønskede opløsning og farvedybde, ellers skiftes til en accelereret tilstand mislykkes og kan forhindre et program i at udføre.