diff options
author | Alexander Larsson <alexl@redhat.com> | 2010-02-17 16:09:06 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2010-02-23 22:52:06 +0100 |
commit | ceff9ca6428d5cb3768d87c9cd9bcba19831d344 (patch) | |
tree | e161a6fd9bd5ca58e837492d5e8275544605ea2e /common | |
parent | f7c071514bfe745dba9748f9bcab2c9f47b62c63 (diff) | |
download | spice-ceff9ca6428d5cb3768d87c9cd9bcba19831d344.tar.gz spice-ceff9ca6428d5cb3768d87c9cd9bcba19831d344.tar.xz spice-ceff9ca6428d5cb3768d87c9cd9bcba19831d344.zip |
Convert cairo canvas read_bits() to pixman
Diffstat (limited to 'common')
-rw-r--r-- | common/cairo_canvas.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/common/cairo_canvas.c b/common/cairo_canvas.c index a183777b..25fb079b 100644 --- a/common/cairo_canvas.c +++ b/common/cairo_canvas.c @@ -2120,18 +2120,17 @@ void canvas_draw_stroke(CairoCanvas *canvas, SpiceRect *bbox, SpiceClip *clip, S void canvas_read_bits(CairoCanvas *canvas, uint8_t *dest, int dest_stride, const SpiceRect *area) { - cairo_t *cairo = canvas->cairo; - cairo_surface_t* surface; + pixman_image_t* surface; uint8_t *src; int src_stride; uint8_t *dest_end; ASSERT(canvas && area); - surface = cairo_get_target(cairo); - src_stride = cairo_image_surface_get_stride(surface); - src = cairo_image_surface_get_data(surface) + area->top * src_stride + - area->left * sizeof(uint32_t); + surface = canvas->image; + src_stride = pixman_image_get_stride(surface); + src = (uint8_t *)pixman_image_get_data(surface) + + area->top * src_stride + area->left * sizeof(uint32_t); dest_end = dest + (area->bottom - area->top) * dest_stride; for (; dest != dest_end; dest += dest_stride, src += src_stride) { memcpy(dest, src, dest_stride); |