summaryrefslogtreecommitdiffstats
path: root/common/canvas_base.h
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2010-03-02 15:41:08 +0100
committerAlexander Larsson <alexl@redhat.com>2010-03-08 19:45:27 +0100
commitc0fdcd1a10d0eae92fec9e00382b445d669c7428 (patch)
tree590429cdba9b115c90e5beaec90f1981ed513121 /common/canvas_base.h
parent04b35fe7ff6b09885a2af9ef8627b45b892e3fb0 (diff)
downloadspice-c0fdcd1a10d0eae92fec9e00382b445d669c7428.tar.gz
spice-c0fdcd1a10d0eae92fec9e00382b445d669c7428.tar.xz
spice-c0fdcd1a10d0eae92fec9e00382b445d669c7428.zip
Make canvas Glz decoder integration nicer
We use a dynamic interface similar to e.g. SpiceImageCache instead of passing both function and opaque
Diffstat (limited to 'common/canvas_base.h')
-rw-r--r--common/canvas_base.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/common/canvas_base.h b/common/canvas_base.h
index 78ece624..7796245c 100644
--- a/common/canvas_base.h
+++ b/common/canvas_base.h
@@ -26,6 +26,7 @@
typedef struct _SpiceImageCache SpiceImageCache;
typedef struct _SpicePaletteCache SpicePaletteCache;
+typedef struct _SpiceGlzDecoder SpiceGlzDecoder;
typedef struct {
void (*put)(SpiceImageCache *cache,
@@ -52,8 +53,17 @@ struct _SpicePaletteCache {
SpicePaletteCacheOps *ops;
};
-typedef void (*glz_decode_fn_t)(void *glz_decoder_opaque, uint8_t *data,
- SpicePalette *plt, void *usr_data);
+typedef struct {
+ void (*decode)(SpiceGlzDecoder *decoder,
+ uint8_t *data,
+ SpicePalette *plt,
+ void *usr_data);
+} SpiceGlzDecoderOps;
+
+struct _SpiceGlzDecoder {
+ SpiceGlzDecoderOps *ops;
+};
+
#ifndef CAIRO_CANVAS_NO_CHUNKS
typedef void *(*get_virt_fn_t)(void *get_virt_opaque, unsigned long addr, uint32_t add_size);
typedef void (*validate_virt_fn_t)(void *validate_virt_opaque, unsigned long virt,