diff options
Diffstat (limited to 'apps/gui/gwps-common.c')
-rw-r--r-- | apps/gui/gwps-common.c | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/apps/gui/gwps-common.c b/apps/gui/gwps-common.c index d33bd8ccac..d15dbba888 100644 --- a/apps/gui/gwps-common.c +++ b/apps/gui/gwps-common.c | |||
@@ -216,12 +216,12 @@ bool wps_data_preload_tags(struct wps_data *data, char *buf, | |||
216 | } | 216 | } |
217 | 217 | ||
218 | /* load the image */ | 218 | /* load the image */ |
219 | ret = read_bmp_file(imgname, &data->img[n].w, | 219 | data->img[n].bm.data = data->img_buf_ptr; |
220 | &data->img[n].h, data->img_buf_ptr, | 220 | ret = read_bmp_file(imgname, &data->img[n].bm, |
221 | data->img_buf_free); | 221 | data->img_buf_free, |
222 | FORMAT_ANY); | ||
222 | if (ret > 0) | 223 | if (ret > 0) |
223 | { | 224 | { |
224 | data->img[n].ptr = data->img_buf_ptr; | ||
225 | data->img_buf_ptr += ret; | 225 | data->img_buf_ptr += ret; |
226 | data->img_buf_free -= ret; | 226 | data->img_buf_free -= ret; |
227 | data->img[n].loaded = true; | 227 | data->img[n].loaded = true; |
@@ -785,7 +785,7 @@ static void clear_image_pos(struct gui_wps *gwps, int n) | |||
785 | struct wps_data *data = gwps->data; | 785 | struct wps_data *data = gwps->data; |
786 | gwps->display->set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); | 786 | gwps->display->set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); |
787 | gwps->display->fillrect(data->img[n].x, data->img[n].y, | 787 | gwps->display->fillrect(data->img[n].x, data->img[n].y, |
788 | data->img[n].w, data->img[n].h); | 788 | data->img[n].bm.width, data->img[n].bm.height); |
789 | gwps->display->set_drawmode(DRMODE_SOLID); | 789 | gwps->display->set_drawmode(DRMODE_SOLID); |
790 | } | 790 | } |
791 | #endif | 791 | #endif |
@@ -827,12 +827,13 @@ static const char* skip_conditional(struct gui_wps *gwps, const char* fmt, | |||
827 | if(n >= 'A' && n <= 'Z') | 827 | if(n >= 'A' && n <= 'Z') |
828 | n = n - 'A' + 26; | 828 | n = n - 'A' + 26; |
829 | if(last_x != data->img[n].x || last_y != data->img[n].y | 829 | if(last_x != data->img[n].x || last_y != data->img[n].y |
830 | || last_w != data->img[n].w || last_h != data->img[n].h) | 830 | || last_w != data->img[n].bm.width |
831 | || last_h != data->img[n].bm.height) | ||
831 | { | 832 | { |
832 | last_x = data->img[n].x; | 833 | last_x = data->img[n].x; |
833 | last_y = data->img[n].y; | 834 | last_y = data->img[n].y; |
834 | last_w = data->img[n].w; | 835 | last_w = data->img[n].bm.width; |
835 | last_h = data->img[n].h; | 836 | last_h = data->img[n].bm.height; |
836 | clear_image_pos(gwps,n); | 837 | clear_image_pos(gwps,n); |
837 | } | 838 | } |
838 | } | 839 | } |
@@ -1243,9 +1244,19 @@ static void wps_draw_image(struct gui_wps *gwps, int n) | |||
1243 | else | 1244 | else |
1244 | display->set_drawmode(DRMODE_SOLID); | 1245 | display->set_drawmode(DRMODE_SOLID); |
1245 | 1246 | ||
1246 | display->mono_bitmap(data->img[n].ptr, data->img[n].x, | 1247 | #if LCD_DEPTH > 1 |
1247 | data->img[n].y, data->img[n].w, | 1248 | if(data->img[n].bm.format == FORMAT_MONO) { |
1248 | data->img[n].h); | 1249 | #endif |
1250 | display->mono_bitmap(data->img[n].bm.data, data->img[n].x, | ||
1251 | data->img[n].y, data->img[n].bm.width, | ||
1252 | data->img[n].bm.height); | ||
1253 | #if LCD_DEPTH > 1 | ||
1254 | } else { | ||
1255 | display->bitmap((fb_data *)data->img[n].bm.data, data->img[n].x, | ||
1256 | data->img[n].y, data->img[n].bm.width, | ||
1257 | data->img[n].bm.height); | ||
1258 | } | ||
1259 | #endif | ||
1249 | } | 1260 | } |
1250 | static void wps_display_images(struct gui_wps *gwps, bool always) | 1261 | static void wps_display_images(struct gui_wps *gwps, bool always) |
1251 | { | 1262 | { |