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.c | |
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.c')
-rw-r--r-- | common/canvas_base.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/common/canvas_base.c b/common/canvas_base.c index 23039eb3..8bac5923 100644 --- a/common/canvas_base.c +++ b/common/canvas_base.c @@ -154,8 +154,7 @@ typedef struct LzData { } LzData; typedef struct GlzData { - void *decoder_opaque; - glz_decode_fn_t decode; + SpiceGlzDecoder *decoder; LzDecodeUsrData decode_data; } GlzData; @@ -623,8 +622,9 @@ static pixman_image_t *canvas_get_glz(CanvasBase *canvas, LZImage *image) #ifdef WIN32 canvas->glz_data.decode_data.dc = canvas->dc; #endif - canvas->glz_data.decode(canvas->glz_data.decoder_opaque, image->lz_rgb.data, NULL, - &canvas->glz_data.decode_data); + canvas->glz_data.decoder->ops->decode(canvas->glz_data.decoder, + image->lz_rgb.data, NULL, + &canvas->glz_data.decode_data); /* global_decode calls alloc_lz_image, which sets canvas->glz_data.surface */ return (canvas->glz_data.decode_data.out_surface); } @@ -1547,7 +1547,7 @@ static int canvas_base_init(CanvasBase *canvas, int depth, static int canvas_base_init(CanvasBase *canvas, int depth #endif #ifdef USE_GLZ - , void *glz_decoder_opaque, glz_decode_fn_t glz_decode + , SpiceGlzDecoder *glz_decoder #endif #ifndef CAIRO_CANVAS_NO_CHUNKS , void *get_virt_opaque, get_virt_fn_t get_virt, @@ -1584,8 +1584,7 @@ static int canvas_base_init(CanvasBase *canvas, int depth } #endif #ifdef USE_GLZ - canvas->glz_data.decoder_opaque = glz_decoder_opaque; - canvas->glz_data.decode = glz_decode; + canvas->glz_data.decoder = glz_decoder; #endif if (depth == 16) { |