wxWidgets und OpenGL: Fullscreen, Multisampling, Forward Compatible Context
-
Da mir die WinAPI zu aufwändig wurde und ich die Portabilität von OpenGL ausnutzen will, habe ich begonnen, wxWidgets zu verwenden.
Da bin aber gleich auf 3 Probleme gestoßen:
- Wie kann ich ein Fullscreen-OpenGL-Fenster erzeugen und wird es überhaupt unterstützt?
- Wie kann ich Multisampling verwenden und wird es überhaupt unterstützt?
- Wie erstelle ich einen Forward Compatible Context und wird es überhaupt unterstützt? Macht es überhaupt Sinn einen Forward Compatible Context zu verwenden?Wenn es nicht unterstützt wird, wäre ich zwar in der Lage, es für Windows selbst zu programmieren, allerdings ist dann die Portabilität futsch, weswegen ich dann Hilfe oder vorgefertigte Lösungen für die anderen Betriebssysteme bräuchte.
Vielen Dank schon im voraus
-
Du kannst ein Fenster mit SetFullscreen() auf Vollbild setzen. Allerdings kann wxWidgets keinen DisplayChange durchführen.
Verschiedene Kontextarten gibts nicht und wirds auch nicht geben, das hat mir einer der Autoren selber gesagt, die sehen keinen Vorteil darin.
Multisampling geht, musst aber die entsprechende Funktion von OpenGL selber aufrufen.Wenn du ein Spiel machen willst und eine einfachere bzw elegantere FensterAPI suchst, nimm SFML. Und das sage ich als die hard wxWidgets Fan.
Allerdings kann SFML auch nur einen compability context.SFML und wxWidgets kann man auch mixen und SFML als Control in wxWidgets verwenden.
-
Wie sieht das mit SFML und wxWidgets aus, kann ich die einfach so mixen?
Als Beispiel habe ich ein OpenGL-Fenster mit Steuerelementen rundherum. Kann ich dann mit SFML das OpenGL-Fenster managen (erstellen, Eventhandling,...) und den Rest mit wxWidgets machen? Wie sieht das dann aus, wenn ich zusätzlich noch Netzwerk und Audio dabei habe?
Wenn das die einfachere und bessere Möglichkeit wäre, dann werde ich mir SFML genauer anschauen, ansonsten werde ich wohl bei reinem wxWidgets bleiben.
-
Senfti schrieb:
Wie sieht das mit SFML und wxWidgets aus, kann ich die einfach so mixen?
Als Beispiel habe ich ein OpenGL-Fenster mit Steuerelementen rundherum. Kann ich dann mit SFML das OpenGL-Fenster managen (erstellen, Eventhandling,...) und den Rest mit wxWidgets machen? Wie sieht das dann aus, wenn ich zusätzlich noch Netzwerk und Audio dabei habe?
Wenn das die einfachere und bessere Möglichkeit wäre, dann werde ich mir SFML genauer anschauen, ansonsten werde ich wohl bei reinem wxWidgets bleiben.Ja, das kannst du. Für Audio kannst du auch SFML nehmen, ist wesentlich einfacher als wxWidgets imho. Ich persönlich nehme für Audio Audiere oder irrKlang.
Für Netzwerk entweder SFML oder wxWidgets, je nach Gusto.
Und hier noch nen Tutorial:
http://www.sfml-dev.org/tutorials/1.6/graphics-wxwidgets.php
Geht auch mit SFML 2.0.
-
-
Falls jemand sich die gleiche Frage stellt, ich verwende jetzt doch keine SFML, sondern bloß wxWidgets. Es ist mir einfach zu aufwendig, zwei GUIs zu lernen. Außerdem stehen bei beiden neue Versionen vor der Tür, was das Ganze noch komplizierter macht.
Wie ich mit wxWidgets meine Probleme löse:
- meine Anforderungen an Fullscreen sollten mit wxTopLevelWindow::ShowFullScreen() und wxDisplay::ChangeMode() möglich sein
- Multisampling ist in Version 2.9.0 hinzugekommen
- Auf den Forward Compatible Context werde ich verzichten, sollte im Moment kein Problem sein