2010-07-13 17 views
12

Ich weiß, dass, wenn die openGl-Implementierung keinen passenden Treiber findet, sie glücklich zurückgreift und alles im Software-Modus rendert. Es ist gut für Grafik-Anwendungen, aber es ist nicht für Computerspiele akzeptabel.Wie erkennt man, ob ein OpenGL-Kontext Hardware-beschleunigt ist?

Ich kenne viele Benutzer mit Windows XP und wenn der Benutzer nicht den Grafikkartentreiber für seine GPU installiert, wird das OpenGL nicht hardwarebeschleunigt (während DirectX ist oder wenn es nicht Fehler wird).

Gibt es einen besseren (und möglicherweise plattformübergreifenden) Weg, um zu bestimmen, ob OpenGL die Hardwarebeschleunigung verwendet, als den FPS zu messen, und wenn der Wert zu niedrig ist, den Benutzer zu benachrichtigen?

Ich weiß, dass Spiele wie Quake3 es irgendwie herausfinden können ...

Antwort

6

Es scheint, dass es kein direkter Weg ist OpenGL für diesen abzufragen, aber es gibt einige Methoden, die Ihnen helfen können, um zu bestimmen, ob eine Hardwarebeschleunigung Geschenk. Siehe here für Windows-Ideen. In einer UNIX-Umgebung sollte glxinfo | grep "direct rendering" funktionieren.

0

Diese vorherige Antwort schlägt vor, dass die Überprüfung, ob der Benutzer nur über OpenGL 1.1 verfügt, ausreichend sein kann.

How to write an installer that checks for openGL support?

+3

dies im allgemeinen nicht ausreichend ist. Z.B. in Linux-Land [Mesa3d] (http://www.mesa3d.org/) implementiert einen OpenGL 2.1-kompatiblen Software-Renderer. – Staffan

Verwandte Themen