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 mit glPopMatrix() wiederhergestellt.
    Diese Datenstruktur hat die Semantik eines Stapelspeichers, d.h. man kann nur eine Matrix mit glPopMatrix() 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 von glPushMatrix() ohne zugehöriges glPopMatrix() 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.



  • Au ja, das wollte ich schon immer mal machen:

    https://i.stack.imgur.com/jiFfM.jpg

    😃



  • Na danke auch 😞

    Muss nur funktionieren is schulprojekt


Anmelden zum Antworten