Вы можете отредактировать один из примеров в загрузке исходного кода OpenTk, чтобы иметь окно GTK # и окно OpenTK Gamewindow в одном приложении.
Скачать исходный код OpenTK здесь:
http://sourceforge.net/projects/opentk/files/latest/download
Сначала убедитесь, что примеры работают, создавая и выполняя примеры. Попробуйте использовать многопоточность OpenTK, она даст вам два окна с вращающимися кубиками.
Теперь отредактируйте пример, чтобы вызвать окно gtk # вместо второго окна игры openTK.
Откройте файл opentk / Source / examples / OpenTK / Test / Multithreading.cs
Вам нужно будет создать функцию для создания окна gtk, например
static void gtkWindow() {
Application.Init ();
var gtkform = new Gtk.Window("test");
var btn = new Gtk.Button("flip");
btn.Clicked += HandleBtnClicked;
gtkform.Add(btn);
gtkform.ShowAll();
Application.Run();
}
Теперь отредактируйте основной цикл, чтобы запустить это окно, например:
// launch threads
for (int i = 0; i < ThreadCount; i++)
{
if (i == 0) {
Thread t = new Thread(RunGame);
t.IsBackground = true;
t.Priority = ThreadPriority.BelowNormal;
t.Start();
threads.Add(t);
} else {
Thread t = new Thread(gtkWindow);
t.IsBackground = true;
t.Priority = ThreadPriority.BelowNormal;
t.Start();
threads.Add(t);
}
}
Теперь у вас будет окно Gtk # и игровые окна OpenTK в одном приложении.