Diff for /qemu/vnchextile.h between versions 1.1.1.3 and 1.1.1.5

version 1.1.1.3, 2018/04/24 16:45:09 version 1.1.1.5, 2018/04/24 16:50:57
Line 2 Line 2
 #define CONCAT(a, b) CONCAT_I(a, b)  #define CONCAT(a, b) CONCAT_I(a, b)
 #define pixel_t CONCAT(uint, CONCAT(BPP, _t))  #define pixel_t CONCAT(uint, CONCAT(BPP, _t))
 #ifdef GENERIC  #ifdef GENERIC
 #define NAME generic  #define NAME CONCAT(generic_, BPP)
 #else  #else
 #define NAME BPP  #define NAME BPP
 #endif  #endif
   
 static void CONCAT(send_hextile_tile_, NAME)(VncState *vs,  static void CONCAT(send_hextile_tile_, NAME)(VncState *vs,
                                              int x, int y, int w, int h,                                               int x, int y, int w, int h,
                                              uint32_t *last_bg32,                                                void *last_bg_,
                                              uint32_t *last_fg32,                                               void *last_fg_,
                                              int *has_bg, int *has_fg)                                               int *has_bg, int *has_fg)
 {  {
     char *row = (vs->ds->data + y * vs->ds->linesize + x * vs->depth);      uint8_t *row = (ds_get_data(vs->ds) + y * ds_get_linesize(vs->ds) + x * ds_get_bytes_per_pixel(vs->ds));
     pixel_t *irow = (pixel_t *)row;      pixel_t *irow = (pixel_t *)row;
     int j, i;      int j, i;
     pixel_t *last_bg = (pixel_t *)last_bg32;      pixel_t *last_bg = (pixel_t *)last_bg_;
     pixel_t *last_fg = (pixel_t *)last_fg32;      pixel_t *last_fg = (pixel_t *)last_fg_;
     pixel_t bg = 0;      pixel_t bg = 0;
     pixel_t fg = 0;      pixel_t fg = 0;
     int n_colors = 0;      int n_colors = 0;
     int bg_count = 0;      int bg_count = 0;
     int fg_count = 0;      int fg_count = 0;
     int flags = 0;      int flags = 0;
     uint8_t data[(sizeof(pixel_t) + 2) * 16 * 16];      uint8_t data[(vs->clientds.pf.bytes_per_pixel + 2) * 16 * 16];
     int n_data = 0;      int n_data = 0;
     int n_subtiles = 0;      int n_subtiles = 0;
   
Line 57  static void CONCAT(send_hextile_tile_, N Line 57  static void CONCAT(send_hextile_tile_, N
         }          }
         if (n_colors > 2)          if (n_colors > 2)
             break;              break;
         irow += vs->ds->linesize / sizeof(pixel_t);          irow += ds_get_linesize(vs->ds) / sizeof(pixel_t);
     }      }
   
     if (n_colors > 1 && fg_count > bg_count) {      if (n_colors > 1 && fg_count > bg_count) {
Line 86  static void CONCAT(send_hextile_tile_, N Line 86  static void CONCAT(send_hextile_tile_, N
         flags |= 0x08;          flags |= 0x08;
   
         irow = (pixel_t *)row;          irow = (pixel_t *)row;
           
         for (j = 0; j < h; j++) {          for (j = 0; j < h; j++) {
             int min_x = -1;              int min_x = -1;
             for (i = 0; i < w; i++) {              for (i = 0; i < w; i++) {
Line 105  static void CONCAT(send_hextile_tile_, N Line 105  static void CONCAT(send_hextile_tile_, N
                 n_data += 2;                  n_data += 2;
                 n_subtiles++;                  n_subtiles++;
             }              }
             irow += vs->ds->linesize / sizeof(pixel_t);              irow += ds_get_linesize(vs->ds) / sizeof(pixel_t);
         }          }
         break;          break;
     case 3:      case 3:
Line 132  static void CONCAT(send_hextile_tile_, N Line 132  static void CONCAT(send_hextile_tile_, N
                     has_color = 0;                      has_color = 0;
 #ifdef GENERIC  #ifdef GENERIC
                     vnc_convert_pixel(vs, data + n_data, color);                      vnc_convert_pixel(vs, data + n_data, color);
                     n_data += vs->pix_bpp;                      n_data += vs->clientds.pf.bytes_per_pixel;
 #else  #else
                     memcpy(data + n_data, &color, sizeof(color));                      memcpy(data + n_data, &color, sizeof(color));
                     n_data += sizeof(pixel_t);                      n_data += sizeof(pixel_t);
Line 152  static void CONCAT(send_hextile_tile_, N Line 152  static void CONCAT(send_hextile_tile_, N
             if (has_color) {              if (has_color) {
 #ifdef GENERIC  #ifdef GENERIC
                 vnc_convert_pixel(vs, data + n_data, color);                  vnc_convert_pixel(vs, data + n_data, color);
                 n_data += vs->pix_bpp;                  n_data += vs->clientds.pf.bytes_per_pixel;
 #else  #else
                 memcpy(data + n_data, &color, sizeof(color));                  memcpy(data + n_data, &color, sizeof(color));
                 n_data += sizeof(pixel_t);                  n_data += sizeof(pixel_t);
Line 161  static void CONCAT(send_hextile_tile_, N Line 161  static void CONCAT(send_hextile_tile_, N
                 n_data += 2;                  n_data += 2;
                 n_subtiles++;                  n_subtiles++;
             }              }
             irow += vs->ds->linesize / sizeof(pixel_t);              irow += ds_get_linesize(vs->ds) / sizeof(pixel_t);
         }          }
   
         /* A SubrectsColoured subtile invalidates the foreground color */          /* A SubrectsColoured subtile invalidates the foreground color */
Line 197  static void CONCAT(send_hextile_tile_, N Line 197  static void CONCAT(send_hextile_tile_, N
         }          }
     } else {      } else {
         for (j = 0; j < h; j++) {          for (j = 0; j < h; j++) {
             vs->write_pixels(vs, row, w * vs->depth);              vs->write_pixels(vs, row, w * ds_get_bytes_per_pixel(vs->ds));
             row += vs->ds->linesize;              row += ds_get_linesize(vs->ds);
         }          }
     }      }
 }  }

Removed from v.1.1.1.3  
changed lines
  Added in v.1.1.1.5


unix.superglobalmegacorp.com