protected override void CreateWindow() { var flags = OpenGLContextFlags.Compat; if (DebugLevel != GraphicsDebugLevel.None) { flags |= OpenGLContextFlags.Debug; } _gameBackgroundWindow = PlatformHelper.CreateOpenGLWindow(FramebufferFormat.Default, 0, 0, 100, 100); _gameBackgroundWindow.Hide(); GameContext = PlatformHelper.CreateOpenGLContext(FramebufferFormat.Default, Major, Minor, flags, shareContext: PrimaryContext); GameContext.Initialize(_gameBackgroundWindow); }
public static SPBOpenGLContext CreateBackgroundContext(OpenGLContextBase sharedContext) { OpenGLContextBase context = PlatformHelper.CreateOpenGLContext(FramebufferFormat.Default, 3, 3, OpenGLContextFlags.Compat, true, sharedContext); NativeWindowBase window = PlatformHelper.CreateOpenGLWindow(FramebufferFormat.Default, 0, 0, 100, 100); context.Initialize(window); context.MakeCurrent(window); GL.LoadBindings(new OpenToolkitBindingsContext(context.GetProcAddress)); context.MakeCurrent(null); return(new SPBOpenGLContext(context, window)); }
static void Main(string[] args) { SwappableNativeWindowBase window = PlatformHelper.CreateOpenGLWindow(FramebufferFormat.Default, 0, 0, 250, 250); window.Show(); OpenGLContextBase context = PlatformHelper.CreateOpenGLContext(FramebufferFormat.Default, 3, 3, OpenGLContextFlags.Compat); context.Initialize(window); context.MakeCurrent(window); GL.LoadBindings(new OpenToolkitBindingsContext(context)); GL.ClearColor(1.0f, 0.5f, 1.0f, 1.0f); GL.Clear(ClearBufferMask.ColorBufferBit); window.SwapBuffers(); Console.WriteLine($"OpenGL vendor: {GL.GetString(StringName.Vendor)}"); Console.WriteLine($"OpenGL version: {GL.GetString(StringName.Version)}"); Console.WriteLine($"OpenGL renderer: {GL.GetString(StringName.Renderer)}"); Console.WriteLine($"OpenGL context profile mask: {GL.GetInteger((GetPName)All.ContextProfileMask)}"); Console.WriteLine($"OpenGL context flags: {GL.GetInteger((GetPName)All.ContextFlags)}"); Thread.Sleep(2000); window.Dispose(); Console.WriteLine($"Dispose OpenGL context!"); context.Dispose(); string vendor2 = GL.GetString(StringName.Vendor); Console.WriteLine($"OpenGL vendor: {vendor2}"); window.Dispose(); }