summaryrefslogtreecommitdiffstats
path: root/common/gdi_canvas.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2010-02-08 15:38:24 +0100
committerMarc-André Lureau <marcandre.lureau@gmail.com>2012-03-20 15:25:37 +0100
commitf9e187c619dea25079c6b4499aedf1ce65d4511a (patch)
treeee0c0e166616bc43d83a07500590adf8c6e4b46c /common/gdi_canvas.c
parent517e38ad0fcfdd2063c74f1d4958045a1fbd0b5d (diff)
downloadspice-common-f9e187c619dea25079c6b4499aedf1ce65d4511a.tar.gz
spice-common-f9e187c619dea25079c6b4499aedf1ce65d4511a.tar.xz
spice-common-f9e187c619dea25079c6b4499aedf1ce65d4511a.zip
Turn image and palette cache into c style dynamic interface
Instead of passing a bunch of function pointer and an opaque pointer we make a real type and add a vtable pointer to it. This means we can simplify all the canvas constructors, etc.
Diffstat (limited to 'common/gdi_canvas.c')
-rw-r--r--common/gdi_canvas.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/common/gdi_canvas.c b/common/gdi_canvas.c
index 9e29cb8..bc9f8b2 100644
--- a/common/gdi_canvas.c
+++ b/common/gdi_canvas.c
@@ -1696,14 +1696,11 @@ static int need_init = 1;
#ifdef CAIRO_CANVAS_CACHE
GdiCanvas *gdi_canvas_create(HDC dc, Mutex* lock, int bits, void *bits_cache_opaque,
- bits_cache_put_fn_t bits_cache_put, bits_cache_get_fn_t bits_cache_get,
- void *palette_cache_opaque, palette_cache_put_fn_t palette_cache_put,
- palette_cache_get_fn_t palette_cache_get,
- palette_cache_release_fn_t palette_cache_release
+ SpiceImageCache *bits_cache,
+ SpicePaletteCache *palette_cache
#elif defined(CAIRO_CANVAS_IMAGE_CACHE)
GdiCanvas *gdi_canvas_create(HDC dc, int bits,
- void *bits_cache_opaque,
- bits_cache_put_fn_t bits_cache_put, bits_cache_get_fn_t bits_cache_get
+ SpiceImageCache *bits_cache
#else
GdiCanvas *gdi_canvas_create(HDC dc, int bits
#endif
@@ -1721,18 +1718,11 @@ GdiCanvas *gdi_canvas_create(HDC dc, int bits
memset(canvas, 0, sizeof(GdiCanvas));
#ifdef CAIRO_CANVAS_CACHE
init_ok = canvas_base_init(&canvas->base, bits,
- bits_cache_opaque,
- bits_cache_put,
- bits_cache_get,
- palette_cache_opaque,
- palette_cache_put,
- palette_cache_get,
- palette_cache_release
+ bits_cache,
+ palette_cache
#elif defined(CAIRO_CANVAS_IMAGE_CACHE)
init_ok = gdi_canvas_base_init(&canvas->base, bits,
- bits_cache_opaque,
- bits_cache_put,
- bits_cache_get
+ bits_cache
#else
init_ok = gdi_canvas_base_init(&canvas->base, bits
#endif