From 4c7711823a0e7132b347595ad0307fb1060405c7 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Fri, 17 Feb 2023 16:27:36 -0800 Subject: [PATCH] lib: make cairo formats conditional --- lib/mks-cairo-framebuffer.c | 3 +++ lib/mks-paintable.c | 4 ++++ lib/mks-util-private.h | 7 +++++++ 3 files changed, 14 insertions(+) diff --git a/lib/mks-cairo-framebuffer.c b/lib/mks-cairo-framebuffer.c index 804229c..ad14e4a 100644 --- a/lib/mks-cairo-framebuffer.c +++ b/lib/mks-cairo-framebuffer.c @@ -24,6 +24,7 @@ #include #include "mks-cairo-framebuffer-private.h" +#include "mks-util-private.h" #define TILE_WIDTH 128 #define TILE_HEIGHT 128 @@ -216,8 +217,10 @@ mks_cairo_framebuffer_constructed (GObject *object) case CAIRO_FORMAT_A1: case CAIRO_FORMAT_RGB16_565: case CAIRO_FORMAT_RGB30: +#if _CAIRO_CHECK_VERSION(1, 17, 2) case CAIRO_FORMAT_RGB96F: case CAIRO_FORMAT_RGBA128F: +#endif case CAIRO_FORMAT_INVALID: default: g_warning ("Unsupported memory format from cairo format: 0x%x", diff --git a/lib/mks-paintable.c b/lib/mks-paintable.c index e79b17a..1d8e7f4 100644 --- a/lib/mks-paintable.c +++ b/lib/mks-paintable.c @@ -32,6 +32,7 @@ #include "mks-dmabuf-paintable-private.h" #include "mks-paintable-private.h" #include "mks-qemu.h" +#include "mks-util-private.h" #include "mks-marshal.h" @@ -68,10 +69,13 @@ _pixman_format_to_cairo_format (guint pixman_format) { switch (pixman_format) { +#if _CAIRO_CHECK_VERSION(1, 17, 2) case PIXMAN_rgba_float: return CAIRO_FORMAT_RGBA128F; case PIXMAN_rgb_float: return CAIRO_FORMAT_RGB96F; +#endif + case PIXMAN_a8r8g8b8: return CAIRO_FORMAT_ARGB32; case PIXMAN_x2r10g10b10: diff --git a/lib/mks-util-private.h b/lib/mks-util-private.h index 7464aad..b24aebc 100644 --- a/lib/mks-util-private.h +++ b/lib/mks-util-private.h @@ -20,10 +20,17 @@ #pragma once +#include #include G_BEGIN_DECLS +#define _CAIRO_CHECK_VERSION(major, minor, micro) \ + (CAIRO_VERSION_MAJOR > (major) || \ + (CAIRO_VERSION_MAJOR == (major) && CAIRO_VERSION_MINOR > (minor)) || \ + (CAIRO_VERSION_MAJOR == (major) && CAIRO_VERSION_MINOR == (minor) && \ + CAIRO_VERSION_MICRO >= (micro))) + gboolean mks_scroll_event_is_inverted (GdkEvent *event); G_END_DECLS