Skip to contentSkip to conversation

ioemu: simplyfing vga_draw_text code

PATCH New Stefano Stabellini 1 participant 1 message Jun 9, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ioemu: simplyfing vga_draw_text code

Hi all,
the last patch I submitted to clean up the DisplayState interface introduces a new static variable called old_depth in vga.c. It would be better to add a last_depth field instead in the VGAState structure for uniformity with the rest of the code. Thanks to Samuel for the suggestion.
Regards,

Stefano Stabellini

tools/ioemu/hw/vga.c +5 -10
diff -r f6520678755a tools/ioemu/hw/vga.c
@@ -1065,8 +1065,6 @@ typedef unsigned int rgb_to_pixel_dup_fu
 
 static rgb_to_pixel_dup_func *rgb_to_pixel_dup_table[NB_DEPTHS];
 
-static int old_depth = 0;
-
 /* 
  * Text mode update 
  * Missing:
@@ -1115,13 +1113,10 @@ static void vga_draw_text(VGAState *s, i
 
     s->last_scr_width = width * cw;
     s->last_scr_height = height * cheight;
-    if (s->ds->dpy_resize_shared && old_depth) {
-        dpy_resize_shared(s->ds, s->last_scr_width, s->last_scr_height, 0, s->last_scr_width * (s->ds->depth / 8), NULL);
-        old_depth = 0;
-        full_update = 1;
-    } else if (width != s->last_width || height != s->last_height ||
-        cw != s->last_cw || cheight != s->last_ch) {
+    if (width != s->last_width || height != s->last_height ||
+        cw != s->last_cw || cheight != s->last_ch || s->last_depth) {
         dpy_resize(s->ds, s->last_scr_width, s->last_scr_height);
+        s->last_depth = 0;
         full_update = 1;
     }
     s->last_width = width;
@@ -1532,14 +1527,14 @@ static void vga_draw_graphic(VGAState *s
         if (s->line_offset != s->last_line_offset || 
             disp_width != s->last_width ||
             height != s->last_height ||
-            old_depth != depth) {
+            s->last_depth != depth) {
             dpy_resize_shared(s->ds, disp_width, height, depth, s->line_offset, s->vram_ptr + (s->start_addr * 4));
             s->last_scr_width = disp_width;
             s->last_scr_height = height;
             s->last_width = disp_width;
             s->last_height = height;
             s->last_line_offset = s->line_offset;
-            old_depth = depth;
+            s->last_depth = depth;
             full_update = 1;
         } else if (s->ds->shared_buf && (full_update || s->ds->data != s->vram_ptr + (s->start_addr * 4)))
             s->ds->dpy_setdata(s->ds, s->vram_ptr + (s->start_addr * 4));
tools/ioemu/hw/vga_int.h +1 -0
diff -r f6520678755a tools/ioemu/hw/vga_int.h
@@ -135,6 +135,7 @@
     uint8_t last_cw, last_ch;                                           \
     uint32_t last_width, last_height; /* in chars or pixels */          \
     uint32_t last_scr_width, last_scr_height; /* in pixels */           \
+    uint32_t last_depth; /* in bits */                                  \
     uint8_t cursor_start, cursor_end;                                   \
     uint32_t cursor_offset;                                             \
     unsigned int (*rgb_to_pixel)(unsigned int r,                        \

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel