diff options
author | Alexander Larsson <alexl@redhat.com> | 2010-02-18 20:42:58 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2010-02-23 22:52:06 +0100 |
commit | 7992266ccfb42d4b1242b6b78b80801f511d4b95 (patch) | |
tree | 6afaaeb714a39796e2b1eae746ac5390d486e946 /common | |
parent | b5693ca0fc06bfe367770a63395ba01ec18ee3b2 (diff) | |
download | spice-7992266ccfb42d4b1242b6b78b80801f511d4b95.tar.gz spice-7992266ccfb42d4b1242b6b78b80801f511d4b95.tar.xz spice-7992266ccfb42d4b1242b6b78b80801f511d4b95.zip |
Remove cairo_t from cairo canvas
Diffstat (limited to 'common')
-rw-r--r-- | common/cairo_canvas.c | 16 | ||||
-rw-r--r-- | common/cairo_canvas.h | 10 | ||||
-rw-r--r-- | common/canvas_base.c | 41 |
3 files changed, 8 insertions, 59 deletions
diff --git a/common/cairo_canvas.c b/common/cairo_canvas.c index d545d9ea..15e4e242 100644 --- a/common/cairo_canvas.c +++ b/common/cairo_canvas.c @@ -30,7 +30,6 @@ struct CairoCanvas { CanvasBase base; - cairo_t *cairo; uint32_t *private_data; int private_data_size; pixman_image_t *image; @@ -2126,11 +2125,6 @@ void canvas_clear(CairoCanvas *canvas) 0); } -cairo_t *canvas_get_cairo(CairoCanvas *canvas) -{ - return canvas->cairo; -} - #ifdef CAIRO_CANVAS_ACCESS_TEST void canvas_set_access_params(CairoCanvas *canvas, unsigned long base, unsigned long max) { @@ -2154,14 +2148,14 @@ void canvas_destroy(CairoCanvas *canvas) static int need_init = 1; #ifdef CAIRO_CANVAS_CACHE -CairoCanvas *canvas_create(cairo_t *cairo, int bits, +CairoCanvas *canvas_create(pixman_image_t *image, int bits, SpiceImageCache *bits_cache, SpicePaletteCache *palette_cache #elif defined(CAIRO_CANVAS_IMAGE_CACHE) -CairoCanvas *canvas_create(cairo_t *cairo, int bits, +CairoCanvas *canvas_create(pixman_image_t *image, int bits, SpiceImageCache *bits_cache #else -CairoCanvas *canvas_create(cairo_t *cairo, int bits +CairoCanvas *canvas_create(pixman_image_t *image, int bits #endif #ifdef USE_GLZ , void *glz_decoder_opaque, glz_decode_fn_t glz_decode @@ -2202,12 +2196,10 @@ CairoCanvas *canvas_create(cairo_t *cairo, int bits validate_virt #endif ); - canvas->cairo = cairo; canvas->private_data = NULL; canvas->private_data_size = 0; - cairo_set_antialias(cairo, CAIRO_ANTIALIAS_NONE); - canvas->image = pixman_image_from_surface (cairo_get_target (cairo)); + canvas->image = pixman_image_ref(image); pixman_region32_init_rect(&canvas->canvas_region, 0, 0, pixman_image_get_width (canvas->image), diff --git a/common/cairo_canvas.h b/common/cairo_canvas.h index 2b935098..205c62cb 100644 --- a/common/cairo_canvas.h +++ b/common/cairo_canvas.h @@ -22,7 +22,7 @@ #include <stdint.h> #include <spice/draw.h> -#include "cairo.h" +#include "pixman_utils.h" #include "canvas_base.h" #include "region.h" @@ -59,17 +59,15 @@ void canvas_set_addr_delta(CairoCanvas *canvas, SPICE_ADDRESS delta); void canvas_set_access_params(CairoCanvas *canvas, unsigned long base, unsigned long max); #endif -cairo_t *canvas_get_cairo(CairoCanvas *canvas); - #ifdef CAIRO_CANVAS_CACHE -CairoCanvas *canvas_create(cairo_t *cairo, int bits, +CairoCanvas *canvas_create(pixman_image_t *image, int bits, SpiceImageCache *bits_cache, SpicePaletteCache *palette_cache #elif defined(CAIRO_CANVAS_IMAGE_CACHE) -CairoCanvas *canvas_create(cairo_t *cairo, int bits, +CairoCanvas *canvas_create(pixman_image_t *image, int bits, SpiceImageCache *bits_cache #else -CairoCanvas *canvas_create(cairo_t *cairo, int bits +CairoCanvas *canvas_create(pixman_image_t *image, int bits #endif #ifdef USE_GLZ , void *glz_decoder_opaque, glz_decode_fn_t glz_decode diff --git a/common/canvas_base.c b/common/canvas_base.c index 55404af1..8b2434bd 100644 --- a/common/canvas_base.c +++ b/common/canvas_base.c @@ -225,47 +225,6 @@ typedef struct ATTR_PACKED DataChunk { #endif -#ifdef CANVAS_USE_PIXMAN - -static pixman_format_code_t -pixman_format_from_cairo_format (cairo_format_t format) -{ - switch (format) { - case CAIRO_FORMAT_A1: - return PIXMAN_a1; - case CAIRO_FORMAT_A8: - return PIXMAN_a8; - case CAIRO_FORMAT_RGB24: - return PIXMAN_x8r8g8b8; - case CAIRO_FORMAT_ARGB32: - default: - return PIXMAN_a8r8g8b8; - } -} - -static pixman_image_t * -pixman_image_from_surface (cairo_surface_t *surface) -{ - pixman_image_t *image; - cairo_format_t format; - - format = cairo_image_surface_get_format (surface); - - image = (pixman_image_t *)cairo_surface_get_user_data(surface, &pixman_data_type); - - if (image) - return pixman_image_ref (image); - - image = pixman_image_create_bits (pixman_format_from_cairo_format (format), - cairo_image_surface_get_width (surface), - cairo_image_surface_get_height (surface), - (uint32_t *)cairo_image_surface_get_data (surface), - cairo_image_surface_get_stride (surface)); - - return image; -} -#endif - static inline void canvas_localize_palette(CanvasBase *canvas, SpicePalette *palette) { if (canvas->color_shift == 5) { |