summaryrefslogtreecommitdiffstats
path: root/client/red_gdi_canvas.cpp
diff options
context:
space:
mode:
authorLarsson@.(none) <Larsson@.(none)>2010-02-26 08:58:07 +0100
committerunknown <Alexander Larsson@.(none)>2010-03-01 15:12:35 +0100
commitc28169976a9050a9a05cbb3dd4543edd34d3c82e (patch)
tree5295409e75f9cca7e483eda81cf2603e37be869c /client/red_gdi_canvas.cpp
parent98f7d96336d2e05f770918f8977f5909f2fac44a (diff)
downloadspice-c28169976a9050a9a05cbb3dd4543edd34d3c82e.tar.gz
spice-c28169976a9050a9a05cbb3dd4543edd34d3c82e.tar.xz
spice-c28169976a9050a9a05cbb3dd4543edd34d3c82e.zip
Make gdi canvas build in the new pixman world
Diffstat (limited to 'client/red_gdi_canvas.cpp')
-rw-r--r--client/red_gdi_canvas.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/client/red_gdi_canvas.cpp b/client/red_gdi_canvas.cpp
index e30845e8..671fe82f 100644
--- a/client/red_gdi_canvas.cpp
+++ b/client/red_gdi_canvas.cpp
@@ -64,9 +64,18 @@ void GDICanvas::create_pixmap(int width, int height)
void GDICanvas::copy_pixels(const QRegion& region, RedDrawable& dest_dc)
{
- for (int i = 0; i < (int)region.num_rects; i++) {
- SpiceRect* r = &region.rects[i];
- dest_dc.copy_pixels(*_pixmap, r->left, r->top, *r);
+ pixman_box32_t *rects;
+ int num_rects;
+
+ rects = pixman_region32_rectangles((pixman_region32_t *)&region, &num_rects);
+ for (int i = 0; i < num_rects; i++) {
+ SpiceRect r;
+
+ r.left = rects[i].x1;
+ r.top = rects[i].y1;
+ r.right = rects[i].x2;
+ r.bottom = rects[i].y2;
+ dest_dc.copy_pixels(*_pixmap, r.left, r.top, r);
}
}