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);
|
||
|
}
|
||
|
}
|
||
|
}
|