summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2010-02-09 16:39:35 +0100
committerAlexander Larsson <alexl@redhat.com>2010-02-23 22:52:01 +0100
commit16780a7b81376b7019b55cb25068177a0b664d90 (patch)
treecc8cf4d2ef2de854b6b01d95b793f29f57a08a82 /server
parent0b0342ee7ece8ea5a811cfb05c70f03ca4e3bde3 (diff)
downloadspice-16780a7b81376b7019b55cb25068177a0b664d90.tar.gz
spice-16780a7b81376b7019b55cb25068177a0b664d90.tar.xz
spice-16780a7b81376b7019b55cb25068177a0b664d90.zip
Use pixman_image_t instead of cairo_surface_t as the generic pixman container
This allows us to use the simpler dependency of pixman outside of the cairo backend, and it later lets us move the cairo backend to using pixman only.
Diffstat (limited to 'server')
-rw-r--r--server/red_worker.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/server/red_worker.c b/server/red_worker.c
index 85964cee..b2cb1f6e 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -722,7 +722,7 @@ typedef struct ImageCacheItem {
uint32_t age;
#endif
struct ImageCacheItem *next;
- cairo_surface_t *surf;
+ pixman_image_t *image;
} ImageCacheItem;
#define IMAGE_CACHE_HASH_SIZE 1024
@@ -3890,7 +3890,7 @@ static void image_cache_remove(ImageCache *cache, ImageCacheItem *item)
now = &(*now)->next;
}
ring_remove(&item->lru_link);
- cairo_surface_destroy(item->surf);
+ pixman_image_unref(item->image);
free(item);
#ifndef IMAGE_CACHE_AGE
cache->num_items--;
@@ -3899,7 +3899,7 @@ static void image_cache_remove(ImageCache *cache, ImageCacheItem *item)
#define IMAGE_CACHE_MAX_ITEMS 2
-static void image_cache_put(SpiceImageCache *spice_cache, uint64_t id, cairo_surface_t *surface)
+static void image_cache_put(SpiceImageCache *spice_cache, uint64_t id, pixman_image_t *image)
{
ImageCache *cache = (ImageCache *)spice_cache;
ImageCacheItem *item;
@@ -3921,7 +3921,7 @@ static void image_cache_put(SpiceImageCache *spice_cache, uint64_t id, cairo_sur
#else
cache->num_items++;
#endif
- item->surf = cairo_surface_reference(surface);
+ item->image = pixman_image_ref(image);
ring_item_init(&item->lru_link);
item->next = cache->hash_table[item->id % IMAGE_CACHE_HASH_SIZE];
@@ -3930,7 +3930,7 @@ static void image_cache_put(SpiceImageCache *spice_cache, uint64_t id, cairo_sur
ring_add(&cache->lru, &item->lru_link);
}
-static cairo_surface_t *image_cache_get(SpiceImageCache *spice_cache, uint64_t id)
+static pixman_image_t *image_cache_get(SpiceImageCache *spice_cache, uint64_t id)
{
ImageCache *cache = (ImageCache *)spice_cache;
@@ -3938,7 +3938,7 @@ static cairo_surface_t *image_cache_get(SpiceImageCache *spice_cache, uint64_t i
if (!item) {
red_error("not found");
}
- return cairo_surface_reference(item->surf);
+ return pixman_image_ref(item->image);
}
static void image_cache_init(ImageCache *cache)