summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2010-02-18 20:42:58 +0100
committerAlexander Larsson <alexl@redhat.com>2010-02-23 22:52:06 +0100
commit7992266ccfb42d4b1242b6b78b80801f511d4b95 (patch)
tree6afaaeb714a39796e2b1eae746ac5390d486e946 /common
parentb5693ca0fc06bfe367770a63395ba01ec18ee3b2 (diff)
downloadspice-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.c16
-rw-r--r--common/cairo_canvas.h10
-rw-r--r--common/canvas_base.c41
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) {