diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2010-06-25 16:20:25 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2010-06-30 22:34:57 +0200 |
commit | f87f63fdf58a16e62c6fcb3c4c7e11f801292ea9 (patch) | |
tree | 19eb3c0fd45ea48182fa1538bca1bd07c630c3bb /common/canvas_base.c | |
parent | 905c6283d5f6c50ffe637f4dcb315c1345c0a0b2 (diff) | |
download | spice-f87f63fdf58a16e62c6fcb3c4c7e11f801292ea9.tar.gz spice-f87f63fdf58a16e62c6fcb3c4c7e11f801292ea9.tar.xz spice-f87f63fdf58a16e62c6fcb3c4c7e11f801292ea9.zip |
qxl-abi: handle clip rect and path references.
red_parse_qxl.c starts to follow QXLPHYSICAL references and build up
data structures. Can zap a bunch of get_virt calls in red_worker.c,
followed by cleanups.
(de-) marshaller needs updates to deal with that. Also I suspect with
the get_virt() calls being gone we can offload more work to generated
marshaller code.
client doesn't build.
Diffstat (limited to 'common/canvas_base.c')
-rw-r--r-- | common/canvas_base.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/common/canvas_base.c b/common/canvas_base.c index c5ab88a2..ba0fb214 100644 --- a/common/canvas_base.c +++ b/common/canvas_base.c @@ -1991,13 +1991,12 @@ static void canvas_clip_pixman(CanvasBase *canvas, case SPICE_CLIP_TYPE_NONE: break; case SPICE_CLIP_TYPE_RECTS: { - uint32_t *n = (uint32_t *)SPICE_GET_ADDRESS(clip->data); - - SpiceRect *now = (SpiceRect *)(n + 1); + uint32_t n = clip->rects->num_rects; + SpiceRect *now = clip->rects->rects; pixman_region32_t clip; - if (spice_pixman_region32_init_rects(&clip, now, *n)) { + if (spice_pixman_region32_init_rects(&clip, now, n)) { pixman_region32_intersect(dest_region, dest_region, &clip); pixman_region32_fini(&clip); } @@ -3191,7 +3190,7 @@ static void canvas_draw_stroke(SpiceCanvas *spice_canvas, SpiceRect *bbox, do { uint32_t flags = seg->flags; - SpicePointFix* point = (SpicePointFix*)seg->data; + SpicePointFix* point = seg->points; SpicePointFix* end_point = point + seg->count; ASSERT(point < end_point); more -= ((unsigned long)end_point - (unsigned long)seg); |