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

Aktuelle Zeit: Fr Jul 18, 2025 05:04

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Extension Check funktioniert nicht
BeitragVerfasst: Di Apr 19, 2005 21:15 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Mit diesem Code:
Code:
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. var str : string;
  3. begin
  4.   DC:= GetDC(Handle);
  5.   Application.OnIdle:= IdleHandler;
  6.  
  7.   if not InitOpenGL then Application.Terminate;
  8.  
  9.   str := glGetString(GL_EXTENSIONS); //<--- HIER FEHLER <<<<<<<<<<<<<<<<<<<<---------------------
  10.  
  11.   if pos('GL_ARB_Texture_Cube_Map',str) = 0 then ShowMessage('GL_ARB_Texture_Cube_Map wird nicht unterstützt!');
  12.  
  13.   RC:= CreateRenderingContext( DC,
  14.                                [opDoubleBuffered],
  15.                                32,
  16.                                24,
  17.                                0,0,0,
  18.                                0);
  19.   ActivateRenderingContext(DC, RC);
  20.  
  21.   SetupGL;
  22.   Init;
  23. end;
kommt an der markierten Stelle ein Fehler (EAccesViolation). Auch der verzweifelte Versuch stattdessen str := PChar(glGetString(GL_EXTENSIONS)); zu schreiben ändert nix.

Woran liegt das?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 19, 2005 21:16 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Das kann alles erst nach CreateRenderingContext benutzt werden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 19, 2005 22:17 
Offline
DGL Member

Registriert: Mi Aug 28, 2002 17:03
Beiträge: 37
Wohnort: ABG
Ich glaube, du musst nach "GL_ARB_texture_cube_map" und nicht "GL_ARB_Texture_Cube_Map" suchen.

mfg olli

_________________
Programmieren beginnt im Kopf und endet im Compiler


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 19, 2005 22:21 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Ja das stimmt auch. Außerdem gibt's dafür schon eine Variable die so heißt und entweder true oder false ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Apr 20, 2005 13:35 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ja das hatte ich dann beim Debuggen rausgefunden ;)

@Lars: Was meinst du mit:
Zitat:
Außerdem gibt's dafür schon eine Variable die so heißt und entweder true oder false ist.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Apr 20, 2005 14:01 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Für jede Extension gibt's im Header eine gleichnamige Variable und nach dem Aufruf von ActivateRenderingContext wird die auf true oder false gesetzt. Je nachdem ob die Extension als verfügbar angegeben ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Apr 20, 2005 14:04 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
In unserem OpenGL Header befinden sich globale Variablen die beim Einlesen der Extension gefüllt werden. Dort befinden sich alle im Header existierenden Extensions und OpenGL Versionen.

Also für deinen Fall wäre das dann in etwa so.
Code:
  1.   if not GL_ARB_Texture_Cube_Map
  2.     then ShowMessage('GL_ARB_Texture_Cube_Map wird nicht unterstützt!');


Das gibt es auch noch als GL_VERSION_1_0 bis GL_VERSION_1_5.

Aber auch hier ist zu bedenken, dass die nur bei einem gültigem und aktiviertem RC gültig sind. Sonst stehen die immer auf False.

[edit] *argh* er war schneller.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Apr 20, 2005 14:09 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ah...sehr gut. Hab das bisher gar net wirklich erkannt. Hatte mich schon gewundert was diese Säule von Extensionnamen denn zu bedeuten hatte. Das ": Booelan" am Ende hatte ich bisher immer übersehn. Danke für die Info. (Steht das eigentlich in den Extension-Tutorials mit drinnen? Wär bestimmt wichtig.)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 26 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 ]