diff options
author | Alexander Larsson <alexl@redhat.com> | 2010-03-02 15:41:08 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2010-03-08 19:45:27 +0100 |
commit | c0fdcd1a10d0eae92fec9e00382b445d669c7428 (patch) | |
tree | 590429cdba9b115c90e5beaec90f1981ed513121 /common/canvas_base.h | |
parent | 04b35fe7ff6b09885a2af9ef8627b45b892e3fb0 (diff) | |
download | spice-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.h | 14 |
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, |