qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCHv3] qxl-render: split out qxl_render_update_dirty_rec


From: Alon Levy
Subject: [Qemu-devel] [PATCHv3] qxl-render: split out qxl_render_update_dirty_rectangles
Date: Tue, 12 Jul 2011 16:55:27 +0300

will later be reused from surface_updated callback when compiling against a
newer spice-server.
---
 hw/qxl-render.c |   37 ++++++++++++++++++++++---------------
 1 files changed, 22 insertions(+), 15 deletions(-)

diff --git a/hw/qxl-render.c b/hw/qxl-render.c
index e64b646..d70373d 100644
--- a/hw/qxl-render.c
+++ b/hw/qxl-render.c
@@ -79,12 +79,32 @@ static void qxl_save_ppm(PCIQXLDevice *qxl)
     }
 }
 
+static void qxl_render_update_dirty_rectangles(PCIQXLDevice *qxl, QXLRect 
*dirty, uint32_t num_dirty)
+{
+    VGACommonState *vga = &qxl->vga;
+    int i;
+
+    dprint(qxl, 3, "%s: %d\n", __FUNCTION__, num_dirty);
+    for (i = 0; i < num_dirty; i++) {
+        if (qemu_spice_rect_is_empty(dirty + i)) {
+            break;
+        }
+        if (qxl->guest_primary.flipped) {
+            qxl_flip(qxl, dirty + i);
+        }
+        dpy_update(vga->ds,
+                   dirty[i].left, dirty[i].top,
+                   dirty[i].right - dirty[i].left,
+                   dirty[i].bottom - dirty[i].top);
+    }
+    qxl_save_ppm(qxl);
+}
+
 void qxl_render_update(PCIQXLDevice *qxl)
 {
     VGACommonState *vga = &qxl->vga;
     QXLRect dirty[32], update;
     void *ptr;
-    int i;
 
     if (qxl->guest_primary.resized) {
         qxl->guest_primary.resized = 0;
@@ -135,20 +155,7 @@ void qxl_render_update(PCIQXLDevice *qxl)
     memset(dirty, 0, sizeof(dirty));
     qxl_spice_update_area(qxl, 0, &update,
                           dirty, ARRAY_SIZE(dirty), 1);
-
-    for (i = 0; i < ARRAY_SIZE(dirty); i++) {
-        if (qemu_spice_rect_is_empty(dirty+i)) {
-            break;
-        }
-        if (qxl->guest_primary.flipped) {
-            qxl_flip(qxl, dirty+i);
-        }
-        dpy_update(vga->ds,
-                   dirty[i].left, dirty[i].top,
-                   dirty[i].right - dirty[i].left,
-                   dirty[i].bottom - dirty[i].top);
-    }
-    qxl_save_ppm(qxl);
+    qxl_render_update_dirty_rectangles(qxl, dirty, ARRAY_SIZE(dirty));
 }
 
 static QEMUCursor *qxl_cursor(PCIQXLDevice *qxl, QXLCursor *cursor)
-- 
1.7.6




reply via email to

[Prev in Thread] Current Thread [Next in Thread]