Clean up OpenTK after every example

Use the IDisposable instance returned by OpenTK.Toolkit.Init() to shutdown OpenTK after the end of each example run.
This commit is contained in:
Stefanos A 2013-10-01 22:04:11 +02:00
parent a85cecdc59
commit 019f466130
2 changed files with 19 additions and 4 deletions

View file

@ -425,7 +425,10 @@ namespace Examples
Trace.Listeners.Add(dbg);
Trace.Listeners.Add(new ConsoleTraceListener());
_main.Invoke(null, null);
using (OpenTK.Toolkit.Init())
{
_main.Invoke(null, null);
}
dbg.Flush();
dbg.Close();

View file

@ -37,14 +37,26 @@ namespace Examples
{
static class Program
{
static void EnableOpenTKHack()
{
// If OpenTK is not initialized before Windows.Forms,
// the program will crash on Mac OS X. This hack will
// enable OpenTK in a temporary AppDomain before entering
// the main program - this appears to be enough.
var domain = AppDomain.CreateDomain("sandbox");
domain.DoCallBack(() => {
using (OpenTK.Toolkit.Init())
{
}
});
}
[STAThread]
public static void Main()
{
try
{
// This seems to be useful enough to leave in for a while.
TextWriterTraceListener console = new TextWriterTraceListener(System.Console.Out);
Trace.Listeners.Add (console);
EnableOpenTKHack();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);