public static void Main(string[] args) { // GTKBindingHelper.InitXThreads(); // GTK GTKBindingHelper.InitializeGlBindings(); Application.Init(); MainWindow win = MainWindow.Create(); win.Show(); Application.Run(); }
public override void LoadAll() { // Modern unices can use EGL to create // both GL and ES contexts, so we need // to load all entry points. This is // especially true on KMS, Wayland and Mir. Stopwatch time = Stopwatch.StartNew(); GTKBindingHelper.InitializeGlBindings(); Debug.Print("Bindings loaded in {0} ms.", time.Elapsed.TotalMilliseconds); }
public override void LoadAll() { // Modern unices can use EGL to create // both GL and ES contexts, so we need // to load all entry points. This is // especially true on KMS, Wayland and Mir. Stopwatch time = Stopwatch.StartNew(); Assembly assembly; try { assembly = Assembly.Load("OpenTK.Graphics"); } catch { // Failed to load graphics, oh well. // Up to the user I guess? // TODO: Should we expose this load failure to the user better? return; } var provider = new GTKBindingHelper(); void LoadBindings(string typeNamespace) { var type = assembly.GetType($"OpenTK.Graphics.{typeNamespace}.GL"); if (type == null) { return; } var load = type.GetMethod("LoadBindings"); load.Invoke(null, new object[] { provider }); } LoadBindings("ES11"); LoadBindings("ES20"); LoadBindings("ES30"); LoadBindings("OpenGL"); LoadBindings("OpenGL4"); Debug.Print("Bindings loaded in {0} ms.", time.Elapsed.TotalMilliseconds); }