[gtk/wip/chergert/macos-fixes] macos: fallback to conversion on WCG colorspace



commit 95168e179cd216f0742e3ba4289befa8db663c59
Author: Christian Hergert <chergert redhat com>
Date:   Sat Feb 5 12:42:57 2022 -0800

    macos: fallback to conversion on WCG colorspace
    
    We don't want to risk having something really weird come out if we have a
    WCG colorspace, so instead only do the performance hack on systems where
    the output is likely reasonable.
    
    We will want to eventually just be drawing in the appropriate colorspace,
    but that is not available yet.

 gdk/macos/GdkMacosCairoView.c | 9 +++++++++
 1 file changed, 9 insertions(+)
---
diff --git a/gdk/macos/GdkMacosCairoView.c b/gdk/macos/GdkMacosCairoView.c
index ad8c72f649..6596702fe8 100644
--- a/gdk/macos/GdkMacosCairoView.c
+++ b/gdk/macos/GdkMacosCairoView.c
@@ -97,6 +97,15 @@ release_surface_provider (void       *info,
       monitor = _gdk_macos_surface_get_best_monitor ([self gdkSurface]);
       rgb = _gdk_macos_monitor_copy_colorspace (GDK_MACOS_MONITOR (monitor));
 
+      /* If we have an WCG colorspace, just take the slow path or we risk
+       * really screwing things up.
+       */
+      if (CGColorSpaceIsWideGamutRGB (rgb))
+        {
+          CGColorSpaceRelease (rgb);
+          rgb = CGColorSpaceCreateDeviceRGB ();
+        }
+
       /* Assert that our image surface was created correctly with
        * 16-byte aligned pointers and strides. This is needed to
        * ensure that we're working with fast paths in CoreGraphics.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]