WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Xen

xen-devel

[Top] [All Lists]

[Xen-devel] [PATCH] vnc linesize

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] vnc linesize
From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Date: 2008年3月19日 17:24:34 +0000
Delivery-date: 2008年3月19日 10:25:48 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 2.0.0.6 (X11/20071022)
Hi all,
the patch I am attaching enables buffer sharing for vnc when the linesize != width * depth.
Best Regards,
Stefano Stabellini
Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
diff -r d1e91aba2758 tools/ioemu/hw/vga.c
--- a/tools/ioemu/hw/vga.c Wed Mar 19 12:41:48 2008 +0000
+++ b/tools/ioemu/hw/vga.c Wed Mar 19 17:19:18 2008 +0000
@@ -1148,7 +1148,7 @@ static void vga_draw_text(VGAState *s, i
 cw != s->last_cw || cheight != s->last_ch) {
 s->last_scr_width = width * cw;
 s->last_scr_height = height * cheight;
- dpy_resize(s->ds, s->last_scr_width, s->last_scr_height, 
s->last_scr_width * (depth / 8));
+ dpy_resize(s->ds, s->last_scr_width, s->last_scr_height, 
s->last_scr_width * (s->ds->depth / 8));
 s->last_width = width;
 s->last_height = height;
 s->last_ch = cheight;
@@ -1571,7 +1571,7 @@ static void vga_draw_graphic(VGAState *s
 vga_draw_line = vga_draw_line_table[v * NB_DEPTHS + 
get_depth_index(s->ds)];
 if (disp_width != s->last_width ||
 height != s->last_height) {
- dpy_resize(s->ds, disp_width, height, disp_width * (depth / 8));
+ dpy_resize(s->ds, disp_width, height, s->line_offset);
 s->last_scr_width = disp_width;
 s->last_scr_height = height;
 s->last_width = disp_width;
diff -r d1e91aba2758 tools/ioemu/vnc.c
--- a/tools/ioemu/vnc.c Wed Mar 19 12:41:48 2008 +0000
+++ b/tools/ioemu/vnc.c Wed Mar 19 16:52:29 2008 +0000
@@ -369,20 +369,17 @@ static void vnc_dpy_resize(DisplayState 
 VncState *vs = ds->opaque;
 int o;
 
- if (linesize != w * vs->depth)
- ds->shared_buf = 0;
-
 if (!ds->shared_buf) {
 if (allocated)
- ds->data = realloc(ds->data, w * h * vs->depth);
+ ds->data = realloc(ds->data, h * linesize);
 else
- ds->data = malloc(w * h * vs->depth);
+ ds->data = malloc(h * linesize);
 allocated = 1;
 } else if (allocated) {
 free(ds->data);
 allocated = 0;
 }
- vs->old_data = realloc(vs->old_data, w * h * vs->depth);
+ vs->old_data = realloc(vs->old_data, h * linesize);
 vs->dirty_row = realloc(vs->dirty_row, h * sizeof(vs->dirty_row[0]));
 vs->update_row = realloc(vs->update_row, h * sizeof(vs->dirty_row[0]));
 
@@ -399,7 +396,7 @@ static void vnc_dpy_resize(DisplayState 
 size_changed = ds->width != w || ds->height != h;
 ds->width = w;
 ds->height = h;
- ds->linesize = w * vs->depth;
+ ds->linesize = linesize;
 if (vs->csock != -1 && vs->has_resize && size_changed) {
 vs->width = ds->width;
 vs->height = ds->height;
@@ -2494,6 +2491,7 @@ void vnc_display_init(DisplayState *ds)
 
 vs->ds->width = 640;
 vs->ds->height = 400;
+ vs->ds->linesize = 640 * 4;
 vnc_dpy_colourdepth(vs->ds, 24);
 }
 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
Previous by Date: [Xen-devel] Re: Illegal PV kernel pfm/pfn translations on PROT_NONE ioremaps , Stephen C. Tweedie
Next by Date: [Xen-devel] [PATCH] ioemu: Fix non-openGL resize , Samuel Thibault
Previous by Thread: [Xen-devel] [PATCH] ioemu: Initialize ioport_opaque to zero , Samuel Thibault
Next by Thread: Re: [Xen-devel] [PATCH] vnc linesize , Alex Williamson
Indexes: [Date] [Thread] [Top] [All Lists]

Copyright ©, Citrix Systems Inc. All rights reserved. Legal and Privacy
Citrix This site is hosted by Citrix

AltStyle によって変換されたページ (->オリジナル) /