SFMl und OpenGL problem!
-
Hi, muss für die schule ein Projekt machen und arbeite da mit OpenGl und SFML.
Mit SFML hab ich das Menü und das ganze 2D zeugs gemacht, und mit OpenGl eben das 3D sach. Und um im 3D raum ein Fadenkreuz zu haben nutz ich pushGLStates() und popGLStates(). Nur leider hat er da folgenden Fehler:An internal OpenGL call failed in RenderTarget.cpp(329).
Expression:
glPushMatrix()
Error description:
GL_STACK_OVERFLOW
This command would cause a stack overflow.An internal OpenGL call failed in RenderTarget.cpp(329).
Expression:
glPopMatrix()
Error description:
GL_STACK_UNDERFLOW
This command would cause a stack underflow.Zumindest kommt die solange ich die Zeilen mit dem Fadenkreuz nicht auskommentiert habe.
Kann mir das Jemand erklären und ne Lösung vorschlagen?Ich lade eine obj datei in dem Programm, also die ziemlich groß ist, falls das was damit zu tun haben könnte.
-
Du hast ein Problem mit OpenGL, aber nicht mit C++ => falsches Forum
-
Transformationsmatrizen werden in OpenGL mit
glPushMatrix()
im sog. Matrix-Stack gesichert, und mitglPopMatrix()
wiederhergestellt.
Diese Datenstruktur hat die Semantik eines Stapelspeichers, d.h. man kann nur eine Matrix mitglPopMatrix()
wiederherstellen, wenn der
Stapel nicht leer ist (ansonsten Stack Underflow). Zusätzlich hat dieser Stack noch eine maximale Größe, die nicht überschritten werden darf.
Zu viele Aufrufe vonglPushMatrix()
ohne zugehörigesglPopMatrix()
führen daher zum Stack Overflow.Du hast vermutlich irgendwo in deinem Code eine Asymmetrie bei den
glPushMatrix()
/glPopMatrix()
-Aufrufen, d.h. einer oder mehrere
Aufrufe einer dieser Funktionen haben keinen zugehörigen Aufruf der jeweils anderen Funktion (Details: siehe Link zu Stapelspeicher).Gruss,
Finnegan
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Sry für die späte Antwort.
Also habe das Problem zwar gelöst, aber den Fehler nicht. Heißt das Programm macht zwar was ich will, nur leider kommt die meldung immernoch, ich hoffe einfach das ich das ignorieren kann.
-
-
Na danke auch
Muss nur funktionieren is schulprojekt