Browse Source

Merge pull request #1010 from PixiEditor/opengl-win-linux

Adde OpenGL support for Windows and Linux
Krzysztof Krysiński 1 week ago
parent
commit
8d5cbaca3f

+ 1 - 1
src/Drawie

@@ -1 +1 @@
-Subproject commit 13aed3a2751f6043b77169a51254fa668a63c603
+Subproject commit 33865d9e190ae75d69230b9d59a21e6779c90666

+ 1 - 0
src/PixiEditor.ChangeableDocument/Rendering/DocumentRenderer.cs

@@ -273,6 +273,7 @@ public class DocumentRenderer : IPreviewRenderable, IDisposable
         if (isExecuting) return;
 
         isExecuting = true;
+        using var ctx = DrawingBackendApi.Current?.RenderingDispatcher.EnsureContext();
         while (renderRequests.Count > 0)
         {
             RenderRequest request = renderRequests.Dequeue();

+ 2 - 2
src/PixiEditor.Desktop/Program.cs

@@ -21,12 +21,12 @@ public class Program
             .UsePlatformDetect()
             .With(new Win32PlatformOptions()
             {
-                RenderingMode = new Win32RenderingMode[] { Win32RenderingMode.Vulkan },
+                RenderingMode = new Win32RenderingMode[] { Win32RenderingMode.Vulkan, Win32RenderingMode.Wgl },
                 OverlayPopups = true,
             })
             .With(new X11PlatformOptions()
             {
-                RenderingMode = new X11RenderingMode[] { X11RenderingMode.Vulkan },
+                RenderingMode = new X11RenderingMode[] { X11RenderingMode.Vulkan, X11RenderingMode.Glx },
                 OverlayPopups = true,
             })
             .With(new SkiaOptions()

+ 2 - 1
src/PixiEditor/Views/Rendering/Scene.cs

@@ -465,7 +465,7 @@ internal class Scene : Zoombox.Zoombox, ICustomHitTest
                 }
             }
 
-            if(Cursor.ToString() != finalCursor.ToString())
+            if (Cursor.ToString() != finalCursor.ToString())
                 Cursor = finalCursor;
             e.Handled = args.Handled;
         }
@@ -766,6 +766,7 @@ internal class Scene : Zoombox.Zoombox, ICustomHitTest
     {
         if (resources != null && !resources.IsDisposed)
         {
+            using var ctx = IDrawieInteropContext.Current.EnsureContext();
             if (size.Width == 0 || size.Height == 0)
             {
                 return;