20-ios-colorspace.patch (2296B)
1 # HG changeset patch 2 # User Jonathan Kew <jkew@mozilla.com> 3 # Date 1714124453 -3600 4 # Fri Apr 26 10:40:53 2024 +0100 5 # Node ID 6d9a0fd66f0a4e02df968ea479d890a41031db15 6 # Parent e606a18e8d85eb481139530055d38f125665fb50 7 Bug 1892913 - patch 18 - Cairo fixes for iOS build. 8 9 diff --git a/gfx/cairo/cairo/src/cairo-features.h b/gfx/cairo/cairo/src/cairo-features.h 10 --- a/gfx/cairo/cairo/src/cairo-features.h 11 +++ b/gfx/cairo/cairo/src/cairo-features.h 12 @@ -75,6 +75,10 @@ 13 #define CAIRO_HAS_QUARTZ_APPLICATION_SERVICES 1 14 #endif 15 16 +#if defined(MOZ_WIDGET_UIKIT) 17 +#define CAIRO_HAS_IMAGE_IO 1 18 +#endif 19 + 20 #ifdef XP_WIN 21 #define CAIRO_HAS_DWRITE_FONT 1 22 #define CAIRO_HAS_WIN32_FONT 1 23 diff --git a/gfx/cairo/cairo/src/cairo-quartz-image-surface.c b/gfx/cairo/cairo/src/cairo-quartz-image-surface.c 24 --- a/gfx/cairo/cairo/src/cairo-quartz-image-surface.c 25 +++ b/gfx/cairo/cairo/src/cairo-quartz-image-surface.c 26 @@ -307,7 +307,11 @@ cairo_quartz_image_surface_create (cairo 27 colorspace = _cairo_quartz_create_color_space (context); 28 } 29 else { 30 +#if CAIRO_HAS_QUARTZ_APPLICATION_SERVICES /* available on macOS but not iOS */ 31 colorspace = CGDisplayCopyColorSpace (CGMainDisplayID ()); 32 +#else 33 + colorspace = CGColorSpaceCreateDeviceRGB (); 34 +#endif 35 } 36 37 bitinfo |= format == CAIRO_FORMAT_ARGB32 ? kCGImageAlphaPremultipliedFirst : kCGImageAlphaNoneSkipFirst; 38 diff --git a/gfx/cairo/cairo/src/cairo-quartz-surface.c b/gfx/cairo/cairo/src/cairo-quartz-surface.c 39 --- a/gfx/cairo/cairo/src/cairo-quartz-surface.c 40 +++ b/gfx/cairo/cairo/src/cairo-quartz-surface.c 41 @@ -201,8 +201,10 @@ CGColorSpaceRef 42 if (color_space) 43 return color_space; 44 } 45 +#if CAIRO_HAS_QUARTZ_APPLICATION_SERVICES /* available on macOS but not iOS */ 46 if (!color_space) 47 color_space = CGDisplayCopyColorSpace (CGMainDisplayID ()); 48 +#endif 49 50 if (!color_space) 51 color_space = CGColorSpaceCreateDeviceRGB (); 52 diff --git a/gfx/cairo/cairo/src/cairo-quartz.h b/gfx/cairo/cairo/src/cairo-quartz.h 53 --- a/gfx/cairo/cairo/src/cairo-quartz.h 54 +++ b/gfx/cairo/cairo/src/cairo-quartz.h 55 @@ -49,6 +49,10 @@ 56 #include <ApplicationServices/ApplicationServices.h> 57 #endif 58 59 +#if CAIRO_HAS_IMAGE_IO 60 +#include <ImageIO/ImageIO.h> 61 +#endif 62 + 63 CAIRO_BEGIN_DECLS 64 65 cairo_public cairo_surface_t *