MVXA hat geschrieben:Ob du es glaubst oder nicht: Es gibt auch Karten, die nichts mit DirectX anfangen können.
So ist es!
Was die Lib im Windowsverzeichnis betrifft, höö?
Meinst du die opengl32.dll? Da hab ich neulich was interessantes in einem OGL-Forum gefunden wo es hieß, die sei nur als Ausweichmodul da, wenn keine fähige GL Unterstützung vorhanden sei. Normalerweise wird sie mit Windows mitgeliefert und nicht genutzt. Jede Grafikkarte hat Hardwaremäßig die OpenGL-Dinge drauf und braucht da keine DLL, zumindest nicht diese.
Hier mal ein Zitat:
Die Versionsnummer von der OpenGL32.dll solltest als aller erstes gleich einmal wieder vergessen. Die sagt nichts über die verfügbare OpenGL Version aus. Und das ist die einzig wichtige Version. Aber wieder zur Opengl32.dll. Diese ist Bestandteil von Windows und hat sich funktional wohl seit einigen (9?) Jahren nicht mehr verändert. Muss sie aber auch nicht. Wenn du einen Grafiikkartentreiber installierst, dann registriert sich dieser in der Registry und die OpenGL32.dll greift dann auf ihn zu. Da du auch mehrere Grafikkarten von unterschiedlichen Herstellern installiert haben kannst wäre es fatal, wenn irgendeiner die Opengl32.dll ersetzen würde. Dann würde nur eine deiner Karte funktionieren. Also entsprechend der Trick mit der DLL als Wrapper. Sollte kein passender Treiber gefunden werden bietet die DLL auch eine Softwareimplementation, die so ziemlich das Schlechteste ist was einem passieren kann.
Noch was zu OpenGl. Das ist nunmal ein Verfahren um portabel Grafik zu programmieren. Deshalb gibt es in den Grunddingen für OpenGL keinerlei Tastenabfragen, Sound, all das was etwa DirectInput oder DirectPlay erledigen würde. Dafür ist es nicht an windows gebunden.
Außerdem gibt es Zwischenstücke zwischen dem OS und OpenGL. Etwa die wgl-Funktionen, speziell für Windows und OpenGL. Parallel dazu gibt es welche für Linus und MacOS welche den OpenGL Support dort ermöglichen. Der Teil der dann im Programm umstrukturiert werden muss ist sehr gering und daher portabel, denn die Grund-OpenGL-Funktionen sind überall gleich.
Außerdem ist OpenGL eine Sache die durch mehrere große Firmen aufrecht und im Gleichgewicht gehalten wird. Firmen wie Nvidia und ATI, Dell, Apple, IBM, Intel, Matrox, Sun, all die großen sind dabei und bilden das Architecture Review Board (ARB). Dadurch wird nicht nur mit ATI und Nvidia darauf geachtet, dass OpenGL auch wohl immer Hardwaremäßig direkt im Chip vorhanden sein wird, sondern es stehen viele Firmen hinter OpenGL die diesen Standard aufrecht erhalten und weiterentwickeln.
(Shader und sogar eine C-Ähnliche Sprache zum Schreiben eigener Shader gibt's in OpenGL auch).
Microsoft war übrigens auch mal im ARB aber hat sich verabschiedet...