summaryrefslogtreecommitdiffstats
path: root/apps/gui/skin_engine
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2011-11-08 21:34:46 +0000
committerThomas Martitz <kugel@rockbox.org>2011-11-08 21:34:46 +0000
commit13209604c1512658e729d0bd9f1c54cf3e53568d (patch)
tree2787f9036b5c40cf79cd324f3d215bb9d48dd34a /apps/gui/skin_engine
parent6223ad266e556f5b8d749d5f4fe08e27385be66f (diff)
downloadrockbox-13209604c1512658e729d0bd9f1c54cf3e53568d.tar.gz
rockbox-13209604c1512658e729d0bd9f1c54cf3e53568d.zip
Add new lcd_bmp and lcd_bmp_part APIs.
This new APIs wrap around lcd_[mono|transparent]_bitmap/_part calls and handle all kinds bitmaps. The intended use is to draw bitmaps that come from read_bmp_fd/_file. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30936 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/skin_engine')
-rw-r--r--apps/gui/skin_engine/skin_display.c58
1 files changed, 7 insertions, 51 deletions
diff --git a/apps/gui/skin_engine/skin_display.c b/apps/gui/skin_engine/skin_display.c
index 95e4310de9..d2dbb56f64 100644
--- a/apps/gui/skin_engine/skin_display.c
+++ b/apps/gui/skin_engine/skin_display.c
@@ -248,22 +248,8 @@ void draw_progressbar(struct gui_wps *gwps, int line, struct progressbar *pb)
if (pb->backdrop)
{
struct gui_img *img = pb->backdrop;
- char *img_data = core_get_data(img->buflib_handle);
-#if LCD_DEPTH > 1
- if(img->bm.format == FORMAT_MONO) {
-#endif
- display->mono_bitmap_part(img_data,
- 0, 0, img->bm.width,
- x, y, width, height);
-#if LCD_DEPTH > 1
- } else {
- display->transparent_bitmap_part((fb_data *)img_data,
- 0, 0,
- STRIDE(display->screen_type,
- img->bm.width, img->bm.height),
- x, y, width, height);
- }
-#endif
+ img->bm.data = core_get_data(img->buflib_handle);
+ display->bmp_part(&img->bm, 0, 0, x, y, width, height);
flags |= DONT_CLEAR_EXCESS;
}
@@ -287,7 +273,7 @@ void draw_progressbar(struct gui_wps *gwps, int line, struct progressbar *pb)
int xoff = 0, yoff = 0;
int w = width, h = height;
struct gui_img *img = pb->slider;
- char *img_data = core_get_data(img->buflib_handle);
+ img->bm.data = core_get_data(img->buflib_handle);
if (flags&HORIZONTAL)
{
@@ -305,21 +291,7 @@ void draw_progressbar(struct gui_wps *gwps, int line, struct progressbar *pb)
yoff = height - yoff;
yoff -= h / 2;
}
-#if LCD_DEPTH > 1
- if(img->bm.format == FORMAT_MONO) {
-#endif
- display->mono_bitmap_part(img_data,
- 0, 0, img->bm.width,
- x + xoff, y + yoff, w, h);
-#if LCD_DEPTH > 1
- } else {
- display->transparent_bitmap_part((fb_data *)img_data,
- 0, 0,
- STRIDE(display->screen_type,
- img->bm.width, img->bm.height),
- x + xoff, y + yoff, w, h);
- }
-#endif
+ display->bmp_part(&img->bm, 0, 0, x + xoff, y + yoff, w, h);
}
if (pb->type == SKIN_TOKEN_PROGRESSBAR)
@@ -357,30 +329,14 @@ void clear_image_pos(struct gui_wps *gwps, struct gui_img *img)
void wps_draw_image(struct gui_wps *gwps, struct gui_img *img, int subimage)
{
struct screen *display = gwps->display;
- char *img_data = core_get_data(img->buflib_handle);
+ img->bm.data = core_get_data(img->buflib_handle);
if(img->always_display)
display->set_drawmode(DRMODE_FG);
else
display->set_drawmode(DRMODE_SOLID);
-#if LCD_DEPTH > 1
- if(img->bm.format == FORMAT_MONO) {
-#endif
- display->mono_bitmap_part(img_data,
- 0, img->subimage_height * subimage,
- img->bm.width, img->x,
- img->y, img->bm.width,
- img->subimage_height);
-#if LCD_DEPTH > 1
- } else {
- display->transparent_bitmap_part((fb_data *)img_data,
- 0, img->subimage_height * subimage,
- STRIDE(display->screen_type,
- img->bm.width, img->bm.height),
- img->x, img->y, img->bm.width,
- img->subimage_height);
- }
-#endif
+ display->bmp_part(&img->bm, 0, img->subimage_height * subimage,
+ img->x, img->y, img->bm.width, img->subimage_height);
}