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