From 3c2360ff9d7409190636cb5f9376af42f05d6e50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Mon, 28 Jan 2013 16:01:22 -0500 Subject: [PATCH] Add new shared/image-loader.h to separate include dependencies Before, cairo-util.h would combine pixman and cairo includes. X11 and Wayland compositors uses this to load an image as a pixman_image_t but are forced to include cairo headers. Clients use load_cairo_surface to load images as cairo_surface_t's, but are forced to include pixman.h. We move the load_image pixman prototype to its own header, so compositors can get at the pixman prototype without including cairo.h and clients can include the cairo based function without including pixman.h. --- shared/Makefile.am | 1 + shared/cairo-util.c | 3 ++- shared/cairo-util.h | 4 ---- shared/image-loader.c | 2 +- shared/image-loader.h | 31 +++++++++++++++++++++++++++++++ src/compositor-wayland.c | 2 +- src/compositor-x11.c | 2 +- 7 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 shared/image-loader.h diff --git a/shared/Makefile.am b/shared/Makefile.am index b38cb95d..1b06c89f 100644 --- a/shared/Makefile.am +++ b/shared/Makefile.am @@ -26,5 +26,6 @@ libshared_cairo_la_LIBADD = \ libshared_cairo_la_SOURCES = \ $(libshared_la_SOURCES) \ image-loader.c \ + image-loader.h \ cairo-util.c \ cairo-util.h diff --git a/shared/cairo-util.c b/shared/cairo-util.c index 360099ed..8b41f413 100644 --- a/shared/cairo-util.c +++ b/shared/cairo-util.c @@ -31,7 +31,8 @@ #include #include "cairo-util.h" -#include "../shared/config-parser.h" +#include "image-loader.h" +#include "config-parser.h" #define ARRAY_LENGTH(a) (sizeof (a) / sizeof (a)[0]) diff --git a/shared/cairo-util.h b/shared/cairo-util.h index 3b93d40d..aff46690 100644 --- a/shared/cairo-util.h +++ b/shared/cairo-util.h @@ -24,7 +24,6 @@ #define _CAIRO_UTIL_H #include -#include void surface_flush_device(cairo_surface_t *surface); @@ -90,7 +89,4 @@ enum theme_location { enum theme_location theme_get_location(struct theme *t, int x, int y, int width, int height, int flags); -pixman_image_t * -load_image(const char *filename); - #endif diff --git a/shared/image-loader.c b/shared/image-loader.c index 64ba2aea..c9f15d49 100644 --- a/shared/image-loader.c +++ b/shared/image-loader.c @@ -29,7 +29,7 @@ #include #include -#include "cairo-util.h" +#include "image-loader.h" #define ARRAY_LENGTH(a) (sizeof (a) / sizeof (a)[0]) diff --git a/shared/image-loader.h b/shared/image-loader.h new file mode 100644 index 00000000..445e651e --- /dev/null +++ b/shared/image-loader.h @@ -0,0 +1,31 @@ +/* + * Copyright © 2013 Intel Corporation + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting documentation, and + * that the name of the copyright holders not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission. The copyright holders make no representations + * about the suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + * + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#ifndef _IMAGE_LOADER_H +#define _IMAGE_LOADER_H + +#include + +pixman_image_t * +load_image(const char *filename); + +#endif diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c index 0a3df034..af493e7f 100644 --- a/src/compositor-wayland.c +++ b/src/compositor-wayland.c @@ -38,7 +38,7 @@ #include "compositor.h" #include "gl-renderer.h" -#include "../shared/cairo-util.h" +#include "../shared/image-loader.h" struct wayland_compositor { struct weston_compositor base; diff --git a/src/compositor-x11.c b/src/compositor-x11.c index b3c7fc5f..2d243da2 100644 --- a/src/compositor-x11.c +++ b/src/compositor-x11.c @@ -52,7 +52,7 @@ #include "gl-renderer.h" #include "pixman-renderer.h" #include "../shared/config-parser.h" -#include "../shared/cairo-util.h" +#include "../shared/image-loader.h" #define DEFAULT_AXIS_STEP_DISTANCE wl_fixed_from_int(10)