OpenGL invalid operation

  • Hallo an alle, die sich mit Opengl auskennen ;)

    Ich schreibe gerade an einem Programm, welches ein GUI besitzt (Winforms).
    Dabei gibt es ein Panel, in welches mittels OpenGL hineingerendert wird, alles optimal soweit. Nur bin ich gerade auf einen Fehler draufgekommen.

    Ich wollte mit Displaylisten generieren lassen, habe aber immer einen "Invalid operation"-Fehler bekommen.

    Nachdem ich jetzt einige Zeit herumgesucht habe, bin ich zum Folgenden Code-Punkt gekommen:

    (die letzte Codezeile ist eigentlich sinnlos ;) - nur für den Haltepunkt in VS 2005).

    Immer nach dem glEnd(); wird glGetError geworfen (alle anderen Positionen hab ich schon durchprobiert, der Fehler passiert immer nach dem glEnd();

    Zuerst dachte ich, es läge vielleicht an den Zugriffen auf "network->kreuzungen[network->strassen[i].startcross].x" usw. (weil es ja mehrere Threads gibt, ein anderer für den dortigen Vektoren Daten hinzu, und ein anderer (von dem der Code ist) rendert das dann), aber wie gesagt, der Fehler passiert immer NACH glEnd();....

    Falls wer eine Idee hat, wäre cool von euch, wenn ihr es reinschreibt ;)

    Lg
    Spite

  • Lol sorry, aber es ist ja nicht das erste mal so:

    Da hat man ein Problem, schreibts rein, sucht weiter, und schwupps findet man den Fehler ;)

    Es lag an den glIneWidth-Befehlen, die sind anscheinend nicht erlaubt innerhalb von glBegin und glEnd, sorry, kann gelöscht werden ;)

    Lg
    Spite

  • Ok, so ganz wars das dann doch noch nicht :(
    Der Fehler scheint mal behoben zu sein, allerdings bekomme ich bei der Displaylisten-Erstellung noch immer eine Invalid Operation.

    Jetzt kommts:
    Wenn ich Straßen erstellt habe (darum gehts in meinem Prog ;) ), dann ist alles ok, wenn ich allerdings im User Interface auf einen anderen Button klicke, der bewirkt, daß ich noch andere Berechnungen durchgeführt werden, dann sieht das bei mir so aus:
    GUI->GUIAppBridge->App(Berechnungen) - so wird der Buttonklick weitergeleitet.
    Wenn ich jetzt allerdings in meiner App gleich an die erste Code-Zeile wieder so ein glGetError hänge, gibt er mir wieder "Invalid operation" zurück????? Dabei ist noch gar nichts passiert........

    Was kann das sein??

    Lg
    Spite

  • Noch eine Idee von mir:

    Kann es sein, daß dieser Fehler nur dann auftritt, wenn ein eigener Thread irgendwas macht?
    Sieht so aus:
    GUI ruft die render-Funktionen auf -> keine "Invalid Operation" -> alles ok
    GUI startet einen Thread welcher berechnungen durchführt -> "Invalid Operation", obwohl noch nichts passiert ist..... also gleich nach dem Aufruf der Funktion

    Kann das sein? Bzw, kann man das verhindern, oder sollte ich mal die Displaylisten mit meinem "Standard-Render-Thread" erstellen lassen?
    Ich hoffe es ist so halbwegs klar, was ich meine, bzw. liest sich das überhaupt wer durch ;)

    Lg
    Spite

    edit:
    Ja hab das gerade getestet, wenn ich den Render-Befehl aus einem eigenen Thread heraus gebe bekomme ich auch einen Error - hat jemand eine Ahnung, wie man das umgehen kann?

    Einmal editiert, zuletzt von Spite82 (17. Mai 2008 um 13:44)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!