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

Aktuelle Zeit: Mi Jul 16, 2025 21:35

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



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Prob mit popmatrix();
BeitragVerfasst: Mi Mär 10, 2004 22:47 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Hi!

Wenn ich ein glpopmatrix (was ich brauche wegen dem stack) hinmache, stimmt IM Spiel nichts mehr... was ich nicht verstehen kann!
Denn wenn ich im spiel bin wird die procedure zum menürendern nicht aufgerufen, in der das glPopMatrix drin steht. Wieso bewirkt es was wenn es nicht aufgerufen wird? es wird nur vorher wenn man im Menü ist aufgerufen.

Edit: Ich war wohl zu müde zum schreiben gestern... raffe ja mein eigenen Text net mehr ;)


Zuletzt geändert von Adler am Do Mär 11, 2004 08:31, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 11, 2004 00:45 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Öhm...Danke gleichfalls... :? :?:

Also nochma Klartext und auf Deutsch mit nem kleinen Schema oder Codefetzen was wann worum nicht geht. Und überhaupt und sowieso! 8)

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 11, 2004 00:54 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Bei solchen Fehler ist oft so, daß man die eine oder andere Anweisung übersehen hat. Alternativ könntest du nach dem glPopMatrix bzw. glPushMatrix nach OpenGL Fehler prüfen. Der Matrix Stack hat nur eine begrentzte Größe (>=32) und es wird daher irgendwann einen Fehler geben, falls die Anzahl der glPushMatrix und glPopMatrix Befehle nicht übereinstimmt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 11, 2004 08:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Also nochmal klartext... ;)

Ich habe eine Procedure zum rendern meines Menüs.
In dieser habe ich noch ein Popmatrix hinzugefügt, um das Stack-Underflow wegzubekommen, schön und gut, ist weg...
Mein Problem ist jetzt, das dieses Popmatrix mein Spiel stört, wenn ich im spiel bin ist alles anderstrum :-/
Obwohl diese Procedure beim Spielrendern nicht aufgerufen wird.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 11, 2004 08:35 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Wahrscheinlich solltest du, anstatt ein glPopMatrix irgendwo einzufügen, grad um etwas zu laufen zu bekommen, lieber mal Nachsehen, wozu das vorhergehende glPushMatrix eigentlich gut war, das du ja offensichtlich nicht brauchst und nicht haben willst, und die entsprechende Anweisung entfernen...

glPopMatrix stellt halt die letzte gepushte Matrix wieder her (und zwar hat jeder Matrix Mode einen eigenen Stack), und das dürfte halt nicht diejenige sein, die du erwartest...

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 11, 2004 08:42 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Habe da schon rumprobiert, es sind ja auch nur sehr wenige... hier mal der code...
Code:
  1. ...
  2.       glVertex3f(4,-3,0);
  3.       glVertex3f(-4,-3,0);
  4.       glVertex3f(-4,-2,0);
  5.     GLEnd();
  6.   glpushmatrix();
  7.  
  8.   menuf.ini_button;
  9.  
  10.   //if drueber.button_start then
  11. if selected_obj = 1 then
  12.   gltranslatef(0,0,-0.07);
  13.   menuf.Draw_Button(0,0,0.6,'Spielen', game_menu.spielen);
  14.  
  15.   glpopmatrix();
  16.   glpushmatrix();
  17.  
  18.   if drueber.button_close then
  19.   gltranslatef(0,0,-0.07);
  20.   menuf.Draw_Button(0,0.3,0.6,'Beenden', game_menu.beenden);
  21.  
  22.   glEnable(GL_CULL_FACE);
  23.   glpopmatrix;
  24. END;


Ich weiß ja net, aber das sind die einzigsten beiden pop und push matrix befehle beim menürendern...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 11, 2004 08:58 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Ich weiß ja nicht, was du in deinen Routinen genau machst - aber rein intuitiv würde ich den Code so umstellen:

Code:
  1. ...
  2.       glVertex3f(4,-3,0);
  3.       glVertex3f(-4,-3,0);
  4.       glVertex3f(-4,-2,0);
  5.     GLEnd();
  6.  
  7.   glpushmatrix();
  8.   menuf.ini_button;
  9.   glpopmatrix();
  10.  
  11.   //if drueber.button_start then
  12. if selected_obj = 1 then
  13.   gltranslatef(0,0,-0.07);
  14.   menuf.Draw_Button(0,0,0.6,'Spielen', game_menu.spielen);
  15.  
  16.   glpushmatrix();
  17.  
  18.   if drueber.button_close then
  19.   gltranslatef(0,0,-0.07);
  20.   menuf.Draw_Button(0,0.3,0.6,'Beenden', game_menu.beenden);
  21.  
  22.   glEnable(GL_CULL_FACE);
  23.   glpopmatrix;
  24. END;


da ich Bauchweh dabei bekomme, wenn ein glPushMatrix immer aufgerufen wird, das zugehörige glPopMatrix aber von einer Bedingung abhängt...

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 11, 2004 10:48 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Danke, es klappt alles, habe noch bissl in meiner SpielRenderprocedure verändert, jetzt klappts...
Jetzt hab ich nur noch en "invalid enumerant" Fehler, der kommt allerdings von noeskas loader ;) wenn ich das modell nicht render gibts den Fehler nicht... :-/


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 9 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 ]