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

Aktuelle Zeit: Fr Jul 11, 2025 07:17

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



Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Texturproblemm(API): glBMP
BeitragVerfasst: Mo Dez 01, 2003 18:46 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Ich habe mich bisher wenig mit Texturen befasst.
Da dies aber doch ein relativ wichtiger Bereich,
nahm ich meine alten Versuche wieder auf.
Ich wollte das API Beispiel des Turial 2 mit Hilfe der Unit glBMP
(welche auch im Bomberman-Turial verwendet wird),
Texturen laden lassen.
Ich versuchte es etwa so:
Code:
  1.  
  2. var
  3. Gras : TGLBMP;
  4. ...
  5. procedure glInit;
  6. ...
  7. Gras := TGLBMP.create('Gras.jpg');
  8. Gras.GenTexture(false,false);//Fehlermeldung
  9. end;
  10. ...
  11. Procedure glDraw;
  12. ...
  13. Gras.bind;
  14.     glBegin(GL_QUADS);
  15.         glTexCoord2f(0,0);        glVertex3f(0,0,0);
  16.         glTexCoord2f(0,1); glVertex3f(0,1,0);
  17.         glTexCoord2f(1,1); glVertex3f(1,1,0);
  18.         glTexCoord2f(1,0);        glVertex3f(1,0,0);
  19.     glEnd;
  20.  

In der Procedure GenTexture bleibt es bei
Code:
  1.  
  2. glBindTexture(GL_TEXTURE_2D, TextureID);
  3.  

hängen.
Warum funktioniert es nicht?
Mfg
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 01, 2003 19:07 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
wir sind nun alle ungefähr so schlau wie vorher - was verstehst du bitte unter hängen bleiben von glBindTexture?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 01, 2003 19:12 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
delphic hat geschrieben:
- was verstehst du bitte unter hängen bleiben von glBindTexture?

Gut war ein bischen unklar formuliert.
Ich kann Zeile für Zeile mich bis dahin hintasten.
Komme ich dann auf diese Funktion so wird ein Error ausgelöst.
Ignoriere ich ihn stürtz das Programm nach ein paar Sekunden nichts machend ab.
Mfg
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 01, 2003 19:24 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
und was für ein fehler kommt? Access vioaltion an Adresse 0? Wenn ja wär die Unit interessant, die du für OpenGl verwendest.

Genreller Tipp: Wenn du Fragen stellst, ist es immer ganz interessant zu wissen, welche Fehler genau auftreten. Wenn dein Programm abstürzt, dann wird es sich ja wohl mit einer Fehlermeldung von Windows oder von sich selbst abmelden - das wär z.B. hilfreich bei der Lösung deines Problems. Es scheint so, als würds bei dir zweimal krachen(an der zeile und nach einiger zeit - also her mit den fehlerbeschreibungen, die das Programm ausspuckt).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 01, 2003 20:18 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Ich muss mich korrekgieren, wenn ich auf den Fehler klick ist das Fenster sofort weg.
Die Fehlermeldung heißt:
"EAccessViolation"
Eine Zugriffsverletzung bei der Adresse 0 .

Mfg
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 01, 2003 20:34 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Japp. Lass mich raten. Du verwendest NICHT die OpenGL12.pas von Mike Lischke zum Initialisieren von OpenGL? Diese wird nämlich in der glbmp.pas verwendet. Wenn du jetzt einen anderen Unit OpenGL initialisiert und die glbmp mittels der Opengl12.pas die Textur binden möchte kracht es. Ist ja Logisch. Die Funktionspointer der opengl12.pas wurden nicht initialisiert.

Trage mal in der glbmp.pas oben deine (nehme mal an dglopengl.pas?) Openglunit ein. Und schon solltes gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 01, 2003 21:05 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Beim ersten liegts du richtig :wink: .
Ich verwende die Unit OpenGL.
Leider hat dein Tipp nicht geholfen.
Wenn ich die OpenGL Unit zusätzlich in die uses Liste mit aufnehme gibt den [b]gleichen Fehler und wenn ich die Unit OpenGL12 in OpenGL umbenenne kennt der Compiler einen Haufen von Funktionen nicht mehr.
Mfg
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Dez 02, 2003 06:55 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Hmmm. Also die OpenGL Unit zu ist wohl die älteste Unit die man für Delphi finden kann. Diese Unterstützt nämlich NUR OpenGL 1.0. Ich empfehle dir komplett auf den dgl OpenGL header umzusteigen. Also dein OpenGL damit initialisieren und in der glbmp das opengl12 durch dglopengl zu ersetzen.
Zu Begin musst du bei der dglopengl.pas initopengl aufrufen. Und wenn du deinen RC von Hand erstellst und aktivierst dann auch noch ReadExtensions und ReadImplementationProperties.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Dez 02, 2003 15:22 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Ich vermute hier einen ganz anderen Fehler, wenn ich das Problem richtig versteh. Ich (und SoS in einem Tut auch) generieren eine Textur mit glbmp so:
Code:
  1.  
  2. gras:= TGLBMP.Create;
  3. gras.LoadFromFile('gras.jpg');
  4. gras.GenTexture(false, false);
  5.  

und binden sie so:
Code:
  1.  
  2. gras.bind;
  3.  


Ciao,
La_Boda

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Dez 02, 2003 16:36 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Das müsste eigentlich da gleiche sein:
Code:
  1.  
  2. gras:= TGLBMP.Create;
  3. gras.LoadFromFile('gras.jpg');
  4. gras.GenTexture(false, false);
  5.  

=
Code:
  1.  
  2. Gras := TGLBMP.create('Gras.jpg');
  3. Gras.GenTexture(false,false);//Fehlermeldung
  4.  

Der einzigste Unterschied ist das ich die Datei gleich mit Create mitlade.
Das Problemm tritt dazu erst bei GenTexture auf.


Werde mich mal nach der dglopengl.pas umschauen.
Vielleicht gibt es die ja hier ürgendwo auf der Website. :mrgreen:
{Edit:
Ist die Unit in opengl15.zip ?
}
Mfg
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Dez 02, 2003 19:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Wenn das die ist die du von dgl gezogen hast. Ja.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 11, 2003 22:06 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Es lag wie vermutet an der OpenGL Version.
In einer andern Anwendung welche OpenGL12 benutzte konnte ich mit glBMP Texturen einbinden.
Mit Texturen sieht dass alles ja so viel besser aus :D .
Mfg
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


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


Wer ist online?

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