GWEN.NET

Wenn man ein Spiel in OpenGL realisiert, hat man meist irgendwann das Problem das man auch Bedienelemente wie Menüs, Checkboxen, Textfelder etc. im Spiel haben möchte. Diese sollen dann natürlich auch noch Events erhalten und möglichst auch in OpenGL gezeichnet werden (da niemand z.B. GDI Objekte im OpenGL haben möchte).

Die GWEN.NET Beispielanwendung

Für .NET/Mono gibt es hierfür eine Portierung von GWEN welche GWEN.NET heist und unter http://code.google.com/p/gwen-dotnet/ zu finden ist. Diese arbeitet z.B. mit OpenTK zusammen. Das ganze ist dabei unter der MIT Lizenz verfügbar.

Weitere Informationen gibt es unter:
http://omeg.pl/blog/2011/07/the-quest-for-c-opengl-gui/

Probleme mit OpenTK und .NET 4

Bei OpenTK handelt es sich um eine freie Toolkit Bilbiothek. Allerdings gibt es mit dieser ein Problem unter .NET 4. Dort stürzt das Control beim initialisieren eines OpenGL Kontextes ab. In diesem Fall liegt es wohl an den veränderten Sicherheitseinstellungen unter .NET 4.

Sobald man die „AssemblyInfo.cs“ um die Zeile:

[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]

ergänzt, funktioniert das ganze wieder. In neueren Versionen von OpenTK kann man dies über das Projekt aktivieren, indem man das Flag „NET40“ setzt.

Danach funktioniert das Anlegen des Kontextes wieder ohne Probleme.

Weitere Informationen gibt es unter:
http://www.opentk.com/node/1662
http://nl.wikipedia.org/wiki/OpenTK

Deutsche OpenGL Wiki

OpenGL ist eine standardisierte Schnittstelle zur Entwicklung von 3D-Grafik (natürlich geht auch 2D). Wer zu dieser Schnittstelle deutsche Informationen sucht der sollte einmal die DGL Wiki besuchen. Dort findet man viele Informationen rund um OpenGL in deutscher Sprache. Zu finden ist die Seite unter http://wiki.delphigl.com. Das sich die Wiki hauptsächlich auf Delphi als Programmiersprache bezieht ist dabei nicht weiter tragisch, da die OpenGL Befehle immer gleich bleiben und somit auch die Art wie mit ihnen gearbeitet wird.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/OpenGL

QGLWidget im Qt Designer hinzufügen

Möchte man im Qt Designer ein QGLWidget für OpenGL in den Dialog einsetzen so wird man feststellen das keines existiert. Darum setzt man zunächst ein Widget in das Formular. Anschließend klickt man mit der rechten Maustaste auf das Formular und wählt dort Promote to… aus. Anschließend öffnet sich folgender Dialog:

Dort gibt man dann bei Promoted class name QGLWidget (das Header File wird automatisch eingetragen) ein und drückt anschließend auf Add und beendet den Dialog mit Promote. Schon hat man das entsprechende Widget im Qt Designer angelegt.