You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
private class ContinuousGlSurface : GLSurface
{
private const int FrameDelay = 1000 / 60;
private readonly Stopwatch stopwatch;
public Action RenderLoop;
public ContinuousGlSurface(GraphicsMode graphicsMode, int major, int minor, GraphicsContextFlags graphicsContextFlags)
: base(graphicsMode, major, minor, graphicsContextFlags)
{
this.stopwatch = Stopwatch.StartNew();
}
protected override void OnDraw(EventArgs args)
{
base.OnDraw(args);
if (this.stopwatch.ElapsedMilliseconds >= ContinuousGlSurface.FrameDelay)
{
this.stopwatch.Restart();
this.RenderLoop();
}
this.Invalidate(false);
}
}
This works flawless.. basically, because it only works properly with either single buffering (due to frameswap glitches), or not using the stopwatch because not using it will results in rendering as fast as your pc can.
So this works till suddenly out of nowhere a random (sometimes after seconds, sometimes after minutes) crash appears:
OpenTK.Graphics.GraphicsContextException: Failed to make context 65537 current. Error: 2004
at OpenTK.Platform.Windows.WinGLContext.MakeCurrent(IWindowInfo window)
at OpenTK.Graphics.GraphicsContext.MakeCurrent(IWindowInfo window)
at Eto.OpenTK.WinForms.WinGLUserControl.MakeCurrent()
at Eto.OpenTK.Wpf.WpfWinGLSurfaceHandler.MakeCurrent()
at Eto.OpenTK.Wpf.WpfWinGLSurfaceHandler.UpdateView()
at Eto.OpenTK.Wpf.WpfWinGLSurfaceHandler.<AttachEvent>b__7_2(Object sender, PaintEventArgs e)
at System.Windows.Forms.Control.OnPaint(PaintEventArgs e)
at Eto.OpenTK.WinForms.WinGLUserControl.OnPaint(PaintEventArgs e)
at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)
at System.Windows.Forms.Control.WmPaint(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.UserControl.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
When searching for that crash, i came across this one: MonoGame/MonoGame#3196
Which looks quite similar.
The text was updated successfully, but these errors were encountered:
For a live renderer i use the following code:
This works flawless.. basically, because it only works properly with either single buffering (due to frameswap glitches), or not using the stopwatch because not using it will results in rendering as fast as your pc can.
So this works till suddenly out of nowhere a random (sometimes after seconds, sometimes after minutes) crash appears:
When searching for that crash, i came across this one: MonoGame/MonoGame#3196
Which looks quite similar.
The text was updated successfully, but these errors were encountered: