using Dashboard.Windowing; using OpenTK.Graphics; using OpenTK.Platform; using TK = OpenTK.Platform.Toolkit; namespace Dashboard.OpenTK.PAL2 { public class Pal2DashboardBackend : IDashboardBackend { public GraphicsApiHints GraphicsApiHints { get; set; } = new OpenGLGraphicsApiHints(); public bool OpenGLBindingsInitialized { get; set; } = false; public IPhysicalWindow CreatePhysicalWindow() { PhysicalWindow window = new PhysicalWindow(GraphicsApiHints); if (!OpenGLBindingsInitialized) { OpenGLBindingsInitialized = true; GLLoader.LoadBindings( new Pal2BindingsContext(TK.OpenGL, ((OpenGLDeviceContext)window.DeviceContext).ContextHandle)); } return window; } public virtual IWindow CreateWindow() { return CreatePhysicalWindow(); } public void Dispose() { } public void Initialize() { } public void Leave() { } public void RunEvents(bool wait) { TK.Window.ProcessEvents(wait); } } }