Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 08:07

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So Jul 13, 2008 16:46 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
HI,

ich hab mein 1. OpenGL Prog fertig gestellt, und es an einige Leute zu testen verschickt. Bei manchen kommen beim Start aber immer Zugriffsverletzungen, aber ich weiß nicht woher. Das ist aber erst seitdem ich ein FBO eingebaut hab. Ich hab versucht den Fehler so zu vermeiden:

Code:
  1.   InitFBO;
  2.   if FBO = 0 then
  3.     begin
  4.       MessageDLG('Unable to create frame buffer object! Application terminated.',mtError,[mbOK],0);
  5.       Application.Terminate;
  6.       exit;
  7.     end;
  8.  


Aber an der situation hat sich nichts geändert: es hagelt immer noch Fehlermeldungen. Jeweils ein beim Start und eine beim Beenden. Ich kann mir nich erklären, woran das liegen könnte! Hat jmd ne Ahnung woran das liegen könnte?

MfG & Thx Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 13, 2008 17:28 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Du musst überprüfen ob die Extension GL_EXT_framebuffer_object auch von OpenGL unterstützt wird. Ich denke, dass das in diesem Fall nicht so ist. Denn wenn sie nicht unterstützt wird, dann sind die Methoden der Extension alle nil. Und das fürt dann zu solchen Fehlern.

Also du erstellst dein FBO mit der Methode glGenRenderbuffersEXT. Aber wenn FBOs nicht unterstützt werden dann knallt es bereits bei diesem Aufruf. Da dann versucht wird eine Methode aufzurufen die nil ist. Der Fall, dass die ID des FBOs 0 ist kann eigentlich nur eintreten wenn der Treiber intern kein Objekt anlegen kann. Was nur im Fehlerfall so sein wird. Denn wenn die Karte keine FBOs kann warum sollte der Treiber dann auch FBOs anbieten. Wäre nicht logisch.

Wenn du mich fragst sollte dein Code eher wie folgt aussehen.
Code:
  1. if not GL_EXT_framebuffer_object then begin
  2.   MessageDLG('Unable to create frame buffer object! Application terminated.',mtError,[mbOK],0);
  3.   Application.Terminate;
  4.   exit;
  5. end;
  6.  
  7. InitFBO;


PS: Also überprüfen ob die Variable einer Extension gesetzt ist. Die Variable kommt im ürigen aus der dglOpenGL. Wurde eingebaut um auf einfache Weise feststellen zu können ob eine Extension unterstützt wird oder nicht.

PPS: Das solltest du auch mit den anderen Extension auch machen!! Also mal durch deinen Code gehen und schauen welche Methoden du sonst noch benutzt. In der dglOpenGL kannst du dann nachschlagen zu welcher Extension sie gehört. Steht ja immer im Kommentar darüber.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 13, 2008 23:27 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
AHH, danke^^
jetzt weiß ich auch wie du das im Delphi-Forum gemeint hast xD


MfG Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]