qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [4569] Invalidate VNC framebuffer on every resize.


From: Andrzej Zaborowski
Subject: [Qemu-devel] [4569] Invalidate VNC framebuffer on every resize.
Date: Sun, 25 May 2008 00:14:36 +0000

Revision: 4569
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=4569
Author:   balrog
Date:     2008-05-25 00:14:34 +0000 (Sun, 25 May 2008)

Log Message:
-----------
Invalidate VNC framebuffer on every resize.

On a resize, vncviewer keeps the image in the upper-left part of the screen
unmodified and fills the right end of the lines with black colour.  vnc.c       
keeps the first n bytes of the framebuffer unmodified instead - meaning that
the client's image doesn't match the image in framebuffer and checking
for dirty rows gives wrong results.  We can either invalidate the whole
buffer or implement the same transformation as the client.

Modified Paths:
--------------
    trunk/vnc.c

Modified: trunk/vnc.c
===================================================================
--- trunk/vnc.c 2008-05-24 23:15:46 UTC (rev 4568)
+++ trunk/vnc.c 2008-05-25 00:14:34 UTC (rev 4569)
@@ -316,6 +316,9 @@
        vs->width = ds->width;
        vs->height = ds->height;
     }
+
+    memset(vs->dirty_row, 0xFF, sizeof(vs->dirty_row));
+    memset(vs->old_data, 42, vs->ds->linesize * vs->ds->height);
 }
 
 /* fastest code */
@@ -1182,8 +1185,6 @@
     }
 
     vnc_dpy_resize(vs->ds, vs->ds->width, vs->ds->height);
-    memset(vs->dirty_row, 0xFF, sizeof(vs->dirty_row));
-    memset(vs->old_data, 42, vs->ds->linesize * vs->ds->height);
 
     vga_hw_invalidate();
     vga_hw_update();
@@ -1982,8 +1983,6 @@
     vs->ds->dpy_resize = vnc_dpy_resize;
     vs->ds->dpy_refresh = NULL;
 
-    memset(vs->dirty_row, 0xFF, sizeof(vs->dirty_row));
-
     vnc_dpy_resize(vs->ds, 640, 400);
 }
 






reply via email to

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