Mehrer GL-Windows in Qt Anwendung
Verfasst: 13.03.2011, 00:51
Ich möchte in meinem Leveleditor ein Hauptfenster haben und eine Minimap.
Jetzt ist natürlich die Frage, welcher OpenGL Befehl gilt für welches Fenster? Ich hab ein bisschen gelesen, und ich denke, es funktioniert in etwa so: Jedes Fenster hat einen eigenen OpenGL Context, und mit QGLWidget::makeCurrent() beziehen sich alle folgenden Befehle auf diesen Context.
Das funktioniert ja schonmal aber: Wie krieg ich es hin, die Modelle und Texturen in beiden Contexten nutzen zu können? So wie es aussieht, kann man alle Ressourcen nur in dem Context benutzen, in dem sie erstellt wurden.
Jetzt wäre es aber dämlich, alles 2 mal zu laden, nur um das ganze für die MiniMap nochmal von oben rendern zu können.
Gibt es irgendeine simple Lösung dafür? Ich hab auch gelesen, mehrere Contexte seien schlecht für die Performance, vermutlich weil ja alle States bei jedem Contextwechsel umgeschaltet werden müssen. Allerdings dürfte das ja für den Editor mehr oder weniger egal sein, der braucht ja keine 50fps, sondern rendert nur, wenn sich was ändert. Aber muss ich sosnt noch was bei mehreren Contexten beachten?
Jetzt ist natürlich die Frage, welcher OpenGL Befehl gilt für welches Fenster? Ich hab ein bisschen gelesen, und ich denke, es funktioniert in etwa so: Jedes Fenster hat einen eigenen OpenGL Context, und mit QGLWidget::makeCurrent() beziehen sich alle folgenden Befehle auf diesen Context.
Das funktioniert ja schonmal aber: Wie krieg ich es hin, die Modelle und Texturen in beiden Contexten nutzen zu können? So wie es aussieht, kann man alle Ressourcen nur in dem Context benutzen, in dem sie erstellt wurden.
Jetzt wäre es aber dämlich, alles 2 mal zu laden, nur um das ganze für die MiniMap nochmal von oben rendern zu können.
Gibt es irgendeine simple Lösung dafür? Ich hab auch gelesen, mehrere Contexte seien schlecht für die Performance, vermutlich weil ja alle States bei jedem Contextwechsel umgeschaltet werden müssen. Allerdings dürfte das ja für den Editor mehr oder weniger egal sein, der braucht ja keine 50fps, sondern rendert nur, wenn sich was ändert. Aber muss ich sosnt noch was bei mehreren Contexten beachten?