50 lines
1.2 KiB
C#
50 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|
|
} |