vnc dynamic resolution
PATCH 1/1 vnc dynamic resolution
This patch implements dynamic colour depth changes in vnc.c:
this way the vnc server can change its own internal colour depth at run time to follow any guest resolution change.
Signed-off-by Stefano Stabellini <[email protected]>
---
console.c +1 -8
@@ -190,16 +190,9 @@ static unsigned int vga_get_color(DisplayState *ds, unsigned int rgba)unsigned int r, g, b, color;switch (ds->depth) { -#if 0 case 8 : - r = (rgba >>16 ) &0xff ; - g = (rgba >>8 ) &0xff ; - b = (rgba) &0xff ; - color = (rgb_to_index[r] *6 *6 ) + - (rgb_to_index[g] *6 ) + - (rgb_to_index[b]); + color = ((r >>5 ) <<5 | (g >>5 ) <<2 | (b >>6 ));break ; -#endif case 15 : r = (rgba >>16 ) &0xff ; g = (rgba >>8 ) &0xff ;
vnc.c +179 -61
357 lines not on this page · raw message
vnchextile.h +6 -6
@@ -2,29 +2,29 @@#define CONCAT (a, b) CONCAT_I(a, b)#define pixel_t CONCAT(uint, CONCAT(BPP, _t))#ifdef GENERIC -#define NAME generic +#define NAME CONCAT(generic_, BPP)#else #define NAME BPP#endif static void CONCAT (send_hextile_tile_ ,NAME )(VncState *vs,int x,int y,int w,int h, -uint32_t *last_bg32, -uint32_t *last_fg32, +void *last_bg_, +void *last_fg_,int *has_bg,int *has_fg) {uint8_t *row = (vs->ds->data + y * vs->ds->linesize + x * vs->depth);pixel_t *irow = (pixel_t *)row;int j, i; -pixel_t *last_bg = (pixel_t *)last_bg32; -pixel_t *last_fg = (pixel_t *)last_fg32; +pixel_t *last_bg = (pixel_t *)last_bg_; +pixel_t *last_fg = (pixel_t *)last_fg_;pixel_t bg =0 ;pixel_t fg =0 ;int n_colors =0 ;int bg_count =0 ;int fg_count =0 ;int flags =0 ; -uint8_t data[(sizeof (pixel_t) +2 ) *16 *16 ]; +uint8_t data[(vs->pix_bpp +2 ) *16 *16 ];int n_data =0 ;int n_subtiles =0 ;
Stefano Stabellini writes ("[Qemu-devel] [PATCH 1 of 3] vnc dynamic resolution"):
Quoted 5 lines
This patch implements dynamic colour depth changes in
vnc.c:
this way the vnc server can change its own internal colour depth at run time to follow any guest resolution change.Signed-off-by Stefano Stabellini <[email protected]>
Acked-by Ian Jackson <[email protected]>
Ian.