tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 *