Registriert: Mi Aug 14, 2013 21:17 Beiträge: 588
Programmiersprache: C++
glAwesome hat geschrieben:
Und was müsste ich genau dagegen tun?
Na, erstmal mit dem Debugger nachschauen, ob dies tatsächlich der Fall ist. Wenn ja: Wurde der Funktionszeiger nicht initialisiert, weil dglInit (oder wie das beim DGL-Header heißt) nicht aufgerufen wurde? Oder liegt es daran, dass die Framebuffer-Extension nicht verfügbar ist? Das wurde hier ja auch schon von anderen vorgeschlagen, aber bisher hast du nicht geschrieben, ob du diese Dinge geprüft hast.
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Registriert: Mo Feb 27, 2012 14:34 Beiträge: 25
Programmiersprache: Pascal
glAwesome hat geschrieben:
glAwesome hat geschrieben:
Und was müsste ich genau dagegen tun?
Na, erstmal mit dem Debugger nachschauen, ob dies tatsächlich der Fall ist. Wenn ja: Wurde der Funktionszeiger nicht initialisiert, weil dglInit (oder wie das beim DGL-Header heißt) nicht aufgerufen wurde? Oder liegt es daran, dass die Framebuffer-Extension nicht verfügbar ist? Das wurde hier ja auch schon von anderen vorgeschlagen, aber bisher hast du nicht geschrieben, ob du diese Dinge geprüft hast.
so, bin wieder im Lande, jetzt kann ich auf die Fragen antworten, wozu ich meinen Rechner brauchte.
Die OpenGL version ist 4.5.0, aber der Funktionszeiger hat beim Debuggen den Wert 0, also wie glAwesome schon sagt nicht initialisiert. DglInit kann ich als Funktion nicht finden, aber InitOpenGL. Bekomme aber auch nach dem Ausführen von InitOpenGL die gleichen Fehlermeldungen und der Funktionszeiger von glgenFramebuffers liefert immer noch 0.
Ich habe dein Code genauer angeguckt, dort hat es eine Methode OpenGLControl1MakeCurrent, die wird nirgends aufgerufen. Komisch, das es ohne diese beiden Zeilen überhaupt läuft.
Code:
ReadExtensions; // Anstatt der Extentions kann auch nur der Core geladen werden. ReadOpenGLCore;
ReadImplementationProperties;
Bei mir sieht eine einfache FormCreate so aus:
Code:
procedure TForm1.FormCreate(Sender:TObject);
begin
InitOpenGL;
OpenGLControl1.MakeCurrent;
ReadExtensions;
ReadImplementationProperties;
InitScene;
end;
In deinem Code würde ich es hier probieren:
Code:
Procedure TForm1.FormCreate(Sender:TObject);
Begin
// Init dglOpenGL.pas , Teil 1
IfNot InitOpenGl ThenBegin
showmessage('Error, could not init dglOpenGL.pas');
Halt;
End;
OpenGLControl1.MakeCurrent;// evtl. weglassen, da bei mir keine rote Linie mehr kommt.
Es war mir ein bisschen langweilig, und habe meine Demo auf altes OpenGL umgesetzt. Es wird ein Dreieck in eine Textur gerendert. Anschliessend rendere ich die Textur in ein Quad.
Natürlich müssen noch die Matrixen angepasst werden.
Registriert: Mo Feb 27, 2012 14:34 Beiträge: 25
Programmiersprache: Pascal
vielen Dank an euch vor allem an mathias, der sich für mich die Arbeit gemacht hat, bei mir funktioniert jetzt auch das Auslesen mit glreadpixels und somit gilt das Thema für mich als gelöst. Ich werde bestimmt noch ein paar mehr Fragen zu anderen Themen rund um OpenGL haben, aber die tauchen bekanntlich immer dann auf, wenn man meint es geschafft zu haben.
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
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.