ähm, wie kann ich rausfinden, ob OpenGL überhaupt auf einem Rechner verwendbar ist? Also ich meine ohne, dass ich eine Fehlermeldung erhalte; gibts da nen vorgefertigten Befehl?
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Was du vielleicht ausprobieren könntest, auf eine elementare Extension prüfen, die z.B. seit 1.1 fester Kernbestandteil ist. Allerdings habe ich keine Ahnung, welche das sein könnte. Da solltest du vielleicht mal ins Wiki schauen.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
OpenGL 1.1 ist unter Windows immer verfügbar. Falls die Grafikkarte es nicht direkt unterstützen sollte, wird der vorinstallierte Software Renderer verwendet.
Eine detaillierte Liste findet man bei http://www.delphi3d.net/hardware/listreports.php
Hm, die Liste ist ja ganz interessant, aber mir gehts wirklich um eine Funktion, die ermittelt ob die Grafikkarte (ganz gleich welche das auch sein mag) OpenGL unterstützt.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Das ist nicht so einfach. Bzw denke ich, dass du zu deiner Aussage "OpenGL Unterstützung" noch etwas fehlt.
Aber ich denke mal wir müssen zum Verständniss ein bisschen tiefer ansetzen. Woher kommt OpenGL eigentlich. Im System32 Verzeichniss von deinem Windows befindet sich einen Opengl32.dll. Wenn diese geladen wird dann schaut sie in der Registry nach ob ein Treiber einen OpenGL Treiber installiert hat und lädt wiederrum diese andere DLL. Alle aufrufe werden dann an den Treiber geleitet. Sollte kein OpenGL Treiber gefunden werden so benutzt die OpenGL32.dll ihre eigene Implementation. Die ist dann OpenGL 1.1.
Wenn du die OpenGL32.dll löscht dann hast du kein OpenGL mehr. Sonst hast du eigentlich immer OpenGL. Das kann aberdann entweder Hardware beschleunigtes oder per software gerendertes OpenGL. Aber das war nicht deine Frage, oder? Ansonsten wird OpenGL immer irgendwie unterstützt.
PS: Hard und Software kannst du unterscheiden, in dem du dir den PixelFormatDescriptors des Kontextes geben lässt. In dem sind ein paar Flags gesetzt. Interessant wären da PFD_GENERIC_ACCELERATED und PFD_GENERIC_FORMAT; Evtl noch einige andere.
Aso, das heißt also, wenn die Graka das nicht mitmacht, wirds per Software umgesetzt? Also entfällt quasi eine Abfrage, ob die Graka eine GeForce 8 oder ein Onboard-Müll von vor tausend Jahren ist.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Genau. Viel entscheidender ist die Frage welche OGL Version unterstützt wird. Außerdem kann man noch abfragen wer die OGL Implementation geliefert hat. Daran läßt sich erkennen, ob z.B. der MS Softwarerenderer im Einsatz ist.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ja wobei man da auch nicht unbedingt sicher sein kann. Denn es gibt noch eine OpenGL 1.1 Software Implementation von SGI und OpenGL 2.0 von Mesa. Die arbeiten alle gleich und sollten sich durch die Flags bei DescribePixelFormat erkennen lassen, weil dieses Flag besagt ob dort ein Treiber angesprochen wurde oder nicht.
Aber selbst wenn ein Hardwaretreiber installiert ist besteht immer noch die Möglichkeit, dass dieser diverse Sachen per Software emuliert. NVEmulate zum Beispiel. Bzw einige andere Sachen. Das lässt sich aus dem Prgramm heraus dann nur noch dann feststellen, weil es viel zu langsam ist.
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.