Zur Benutzung des dglOpenGL-Headers muß man ja zuerst InitOpenGL aufrufen. Laut Dokumentation hat diese Funktion keine Parameter. Das stimmt jedoch nicht: die Funktion ist deklariert als
Code:
function InitOpenGL(LibName: String; GLULibName : String): Boolean;
sie hat also zwei Parameter, LibName und GLULibName. Nach der Implementierung der Funktion zu urteilen sind das beides Namen von DLLs (eine für OpenGL und eine für GLU), die mit LoadLibrary geladen werden sollen. Wie heißen die beiden DLLs denn? Und ich glaube auch nicht, daß ich die auf meinen Rechner habe...
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2068
Programmiersprache: C++
Was für eine Version hast du?
Weil es mit Defaultwerten versehen wurde und somit nur optionale Parameter sind.
Default für Windows: Libname = 'OpenGL32.dll'; GLULibName = 'GLU32.dll'
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
Schaue Dir bitte auch die Vordeklaration an, die vermutlich deine Frage direkt beantwortet:
Code:
{$IFDEF Win32CLR}
function InitOpenGL(LibName:string='OpenGL32.dll'; GLULibName:string='GLU32.dll'):Boolean;
{$ELSE}
function InitOpenGL(LibName:string='libGL.so.1'; GLULibName:string='libGLU.so.1'):Boolean;
{$ENDIF}
Entsprechende DLLs sollte durchaus auf einem aktuellen System anzufinden sein, eine Änderung wird vermutlich nur dann sinnvoll sein, wenn man ein alternatives System wie z.B. Mesa versucht zu implementieren oder halt eien andere Plattform hat (s. zweite Deklaration). Der Aufruf der InitOpenGL ohne Parameter wird also durchaus für Dich ausreichend sein und bestens funktionieren. Klemmt es den irgendwo?
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
ich verwende die Delphi3-kompatible Version von Mars, in der hat InitOpenGL keine Defaultparameter (kann es sein, daß Delphi3 solche noch nicht unterstützt?).
Übrigens scheint Mars in der Implementierung von InitOpenGL ein bißchen was vergessen zu haben: mit GetProcAddress verlinkt sind nur die wgl- und glu-Funktionen, die ganzen gl-Funktionen dagegen allesamt nicht! Deswegen ist mein Programm anfänglich immer abgestürzt, ich hab das jetzt mal selbst nachträglich eingefügt, und jetzt geht's.
Könnt ihr Mars bitte mal verhauen?
Das war noch eine ganz alte Version. Da muß man glaube ich noch LoadExtensions oder so ähnlich aufrufen, denn die meisten OpenGL Funktion können widersinnigerweise nur mit initialisiert werden, nachdem der RenderContext erstellt wurde.
In der aktuellen Version spielt das keine Rolle mehr, eine Funktion wird beim ersten Aufruf initialisiert.
Mars war schon sehr lange nicht mehr aktiv (17 Sep 2005), denke nicht dass da noch mal ein Update erscheint.
Das war noch eine ganz alte Version. Da muß man glaube ich noch LoadExtensions oder so ähnlich aufrufen, denn die meisten OpenGL Funktion können widersinnigerweise nur mit initialisiert werden, nachdem der RenderContext erstellt wurde.
ah danke, das war's. Die Funktion heißt ReadExtensions
Da hätte Mars aber ruhig ein bißchen Dokumentation zu schreiben können. War zwar ein Beispielprogramm dabei, das aber war ein bißchen undurchschaubar, weil die Funktionen aus dem Header ziemlich tief im Sourcecode versteckt waren.
Mitglieder in diesem Forum: 0 Mitglieder und 6 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.