diff options
author | Karl Kurbjun <kkurbjun@gmail.com> | 2009-09-04 00:46:24 +0000 |
---|---|---|
committer | Karl Kurbjun <kkurbjun@gmail.com> | 2009-09-04 00:46:24 +0000 |
commit | 25123570c76f2055d3ae05d79741038c0e23c536 (patch) | |
tree | a2edd8351a611b9cef0aef08c880a994d9e1d75e | |
parent | f6025186fd1f6d9083c07568bc3d160f3e8774f8 (diff) | |
download | rockbox-25123570c76f2055d3ae05d79741038c0e23c536.tar.gz rockbox-25123570c76f2055d3ae05d79741038c0e23c536.zip |
Fix STRIDE macro for multiscreen and add stride support for picture lib.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22615 a1c6a512-1295-4272-9138-f99709370657
28 files changed, 191 insertions, 109 deletions
diff --git a/apps/gui/icon.c b/apps/gui/icon.c index 74af4a0d90..53cfd87774 100644 --- a/apps/gui/icon.c +++ b/apps/gui/icon.c | |||
@@ -144,19 +144,20 @@ void screen_put_iconxy(struct screen * display, | |||
144 | return; | 144 | return; |
145 | } | 145 | } |
146 | data = viewer_iconset[screen].data; | 146 | data = viewer_iconset[screen].data; |
147 | stride = STRIDE( viewer_iconset[screen].width, | 147 | stride = STRIDE( display->screen_type, viewer_iconset[screen].width, |
148 | viewer_iconset[screen].height); | 148 | viewer_iconset[screen].height); |
149 | } | 149 | } |
150 | else if (custom_icons_loaded[screen]) | 150 | else if (custom_icons_loaded[screen]) |
151 | { | 151 | { |
152 | data = user_iconset[screen].data; | 152 | data = user_iconset[screen].data; |
153 | stride = STRIDE( user_iconset[screen].width, | 153 | stride = STRIDE( display->screen_type, user_iconset[screen].width, |
154 | user_iconset[screen].height); | 154 | user_iconset[screen].height); |
155 | } | 155 | } |
156 | else | 156 | else |
157 | { | 157 | { |
158 | data = inbuilt_icons[screen]; | 158 | data = inbuilt_icons[screen]; |
159 | stride = STRIDE(BMPWIDTH_default_icons, BMPHEIGHT_default_icons); | 159 | stride = STRIDE( display->screen_type, BMPWIDTH_default_icons, |
160 | BMPHEIGHT_default_icons); | ||
160 | } | 161 | } |
161 | /* add some left padding to the icons if they are on the edge */ | 162 | /* add some left padding to the icons if they are on the edge */ |
162 | if (xpos == 0) | 163 | if (xpos == 0) |
diff --git a/apps/gui/scrollbar.c b/apps/gui/scrollbar.c index 193bb4b65a..2e807002f0 100644 --- a/apps/gui/scrollbar.c +++ b/apps/gui/scrollbar.c | |||
@@ -202,7 +202,8 @@ void gui_bitmap_scrollbar_draw(struct screen * screen, struct bitmap bm, int x, | |||
202 | #if LCD_DEPTH > 1 | 202 | #if LCD_DEPTH > 1 |
203 | else | 203 | else |
204 | screen->transparent_bitmap_part((fb_data *)bm.data, 0, 0, | 204 | screen->transparent_bitmap_part((fb_data *)bm.data, 0, 0, |
205 | STRIDE(bm.width, bm.height), | 205 | STRIDE(screen->screen_type, |
206 | bm.width, bm.height), | ||
206 | x + start, y, size, height); | 207 | x + start, y, size, height); |
207 | #endif | 208 | #endif |
208 | } else { | 209 | } else { |
@@ -214,7 +215,8 @@ void gui_bitmap_scrollbar_draw(struct screen * screen, struct bitmap bm, int x, | |||
214 | #if LCD_DEPTH > 1 | 215 | #if LCD_DEPTH > 1 |
215 | else | 216 | else |
216 | screen->transparent_bitmap_part((fb_data *)bm.data, 0, 0, | 217 | screen->transparent_bitmap_part((fb_data *)bm.data, 0, 0, |
217 | STRIDE(bm.width, bm.height), | 218 | STRIDE(screen->screen_type, |
219 | bm.width, bm.height), | ||
218 | x, y + start, width, size); | 220 | x, y + start, width, size); |
219 | #endif | 221 | #endif |
220 | } | 222 | } |
diff --git a/apps/gui/skin_engine/skin_display.c b/apps/gui/skin_engine/skin_display.c index 0a43a19b90..01f8b13acb 100644 --- a/apps/gui/skin_engine/skin_display.c +++ b/apps/gui/skin_engine/skin_display.c | |||
@@ -232,7 +232,8 @@ static void wps_draw_image(struct gui_wps *gwps, struct gui_img *img, int subima | |||
232 | } else { | 232 | } else { |
233 | display->transparent_bitmap_part((fb_data *)img->bm.data, | 233 | display->transparent_bitmap_part((fb_data *)img->bm.data, |
234 | 0, img->subimage_height * subimage, | 234 | 0, img->subimage_height * subimage, |
235 | STRIDE(img->bm.width, img->bm.height), | 235 | STRIDE(display->screen_type, |
236 | img->bm.width, img->bm.height), | ||
236 | img->x, img->y, img->bm.width, | 237 | img->x, img->y, img->bm.width, |
237 | img->subimage_height); | 238 | img->subimage_height); |
238 | } | 239 | } |
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c index ec1bd46ce9..e00b209c9d 100644 --- a/apps/plugins/blackjack.c +++ b/apps/plugins/blackjack.c | |||
@@ -607,7 +607,8 @@ static void draw_card(struct card temp_card, bool shown, | |||
607 | if(shown) | 607 | if(shown) |
608 | rb->lcd_bitmap_part(card_deck, CARD_WIDTH*temp_card.num, | 608 | rb->lcd_bitmap_part(card_deck, CARD_WIDTH*temp_card.num, |
609 | CARD_HEIGHT*temp_card.suit, | 609 | CARD_HEIGHT*temp_card.suit, |
610 | STRIDE(BMPWIDTH_card_deck, BMPHEIGHT_card_deck), | 610 | STRIDE( SCREEN_MAIN, BMPWIDTH_card_deck, |
611 | BMPHEIGHT_card_deck), | ||
611 | x+1, y+1, CARD_WIDTH, CARD_HEIGHT); | 612 | x+1, y+1, CARD_WIDTH, CARD_HEIGHT); |
612 | else | 613 | else |
613 | rb->lcd_bitmap(card_back, x+1, y+1,CARD_WIDTH, CARD_HEIGHT); | 614 | rb->lcd_bitmap(card_back, x+1, y+1,CARD_WIDTH, CARD_HEIGHT); |
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c index bc606d6a24..82a883c7a4 100644 --- a/apps/plugins/brickmania.c +++ b/apps/plugins/brickmania.c | |||
@@ -1081,7 +1081,8 @@ static int brickmania_game_loop(void) | |||
1081 | brick[i*10+j].powertop+=SPEED_POWER; | 1081 | brick[i*10+j].powertop+=SPEED_POWER; |
1082 | rb->lcd_bitmap_part(brickmania_powerups,0, | 1082 | rb->lcd_bitmap_part(brickmania_powerups,0, |
1083 | POWERUP_HEIGHT*brick[i*10+j].power, | 1083 | POWERUP_HEIGHT*brick[i*10+j].power, |
1084 | STRIDE( BMPWIDTH_brickmania_powerups, | 1084 | STRIDE( SCREEN_MAIN, |
1085 | BMPWIDTH_brickmania_powerups, | ||
1085 | BMPHEIGHT_brickmania_powerups), | 1086 | BMPHEIGHT_brickmania_powerups), |
1086 | LEFTMARGIN+j*BRICK_WIDTH+ | 1087 | LEFTMARGIN+j*BRICK_WIDTH+ |
1087 | (BRICK_WIDTH/2-POWERUP_WIDTH/2), | 1088 | (BRICK_WIDTH/2-POWERUP_WIDTH/2), |
@@ -1205,7 +1206,8 @@ static int brickmania_game_loop(void) | |||
1205 | if (brick[i*10+j].used==1) { | 1206 | if (brick[i*10+j].used==1) { |
1206 | rb->lcd_bitmap_part(brickmania_bricks,0, | 1207 | rb->lcd_bitmap_part(brickmania_bricks,0, |
1207 | BRICK_HEIGHT*brick[i*10+j].color, | 1208 | BRICK_HEIGHT*brick[i*10+j].color, |
1208 | STRIDE( BMPWIDTH_brickmania_bricks, | 1209 | STRIDE( SCREEN_MAIN, |
1210 | BMPWIDTH_brickmania_bricks, | ||
1209 | BMPHEIGHT_brickmania_bricks), | 1211 | BMPHEIGHT_brickmania_bricks), |
1210 | LEFTMARGIN+j*BRICK_WIDTH, | 1212 | LEFTMARGIN+j*BRICK_WIDTH, |
1211 | TOPMARGIN+i*BRICK_HEIGHT, | 1213 | TOPMARGIN+i*BRICK_HEIGHT, |
@@ -1214,7 +1216,8 @@ static int brickmania_game_loop(void) | |||
1214 | if (brick[i*10+j].hiteffect>0) | 1216 | if (brick[i*10+j].hiteffect>0) |
1215 | rb->lcd_bitmap_transparent_part(brickmania_break,0, | 1217 | rb->lcd_bitmap_transparent_part(brickmania_break,0, |
1216 | BRICK_HEIGHT*brick[i*10+j].hiteffect, | 1218 | BRICK_HEIGHT*brick[i*10+j].hiteffect, |
1217 | STRIDE( BMPWIDTH_brickmania_break, | 1219 | STRIDE( SCREEN_MAIN, |
1220 | BMPWIDTH_brickmania_break, | ||
1218 | BMPHEIGHT_brickmania_break), | 1221 | BMPHEIGHT_brickmania_break), |
1219 | LEFTMARGIN+j*BRICK_WIDTH, | 1222 | LEFTMARGIN+j*BRICK_WIDTH, |
1220 | TOPMARGIN+i*BRICK_HEIGHT, | 1223 | TOPMARGIN+i*BRICK_HEIGHT, |
@@ -1377,7 +1380,8 @@ static int brickmania_game_loop(void) | |||
1377 | rb->lcd_bitmap_part( | 1380 | rb->lcd_bitmap_part( |
1378 | brickmania_pads, | 1381 | brickmania_pads, |
1379 | 0, pad_type*PAD_HEIGHT, | 1382 | 0, pad_type*PAD_HEIGHT, |
1380 | STRIDE(BMPWIDTH_brickmania_pads, BMPHEIGHT_brickmania_pads), | 1383 | STRIDE( SCREEN_MAIN, BMPWIDTH_brickmania_pads, |
1384 | BMPHEIGHT_brickmania_pads), | ||
1381 | pad_pos_x, PAD_POS_Y, pad_width, PAD_HEIGHT); | 1385 | pad_pos_x, PAD_POS_Y, pad_width, PAD_HEIGHT); |
1382 | } | 1386 | } |
1383 | else if( pad_width == LONG_PAD_WIDTH ) /* Long Pad */ | 1387 | else if( pad_width == LONG_PAD_WIDTH ) /* Long Pad */ |
@@ -1385,7 +1389,7 @@ static int brickmania_game_loop(void) | |||
1385 | rb->lcd_bitmap_part( | 1389 | rb->lcd_bitmap_part( |
1386 | brickmania_long_pads, | 1390 | brickmania_long_pads, |
1387 | 0,pad_type*PAD_HEIGHT, | 1391 | 0,pad_type*PAD_HEIGHT, |
1388 | STRIDE( BMPWIDTH_brickmania_long_pads, | 1392 | STRIDE( SCREEN_MAIN, BMPWIDTH_brickmania_long_pads, |
1389 | BMPHEIGHT_brickmania_long_pads), | 1393 | BMPHEIGHT_brickmania_long_pads), |
1390 | pad_pos_x, PAD_POS_Y, pad_width, PAD_HEIGHT); | 1394 | pad_pos_x, PAD_POS_Y, pad_width, PAD_HEIGHT); |
1391 | } | 1395 | } |
@@ -1394,7 +1398,7 @@ static int brickmania_game_loop(void) | |||
1394 | rb->lcd_bitmap_part( | 1398 | rb->lcd_bitmap_part( |
1395 | brickmania_short_pads, | 1399 | brickmania_short_pads, |
1396 | 0,pad_type*PAD_HEIGHT, | 1400 | 0,pad_type*PAD_HEIGHT, |
1397 | STRIDE( BMPWIDTH_brickmania_short_pads, | 1401 | STRIDE( SCREEN_MAIN, BMPWIDTH_brickmania_short_pads, |
1398 | BMPHEIGHT_brickmania_short_pads), | 1402 | BMPHEIGHT_brickmania_short_pads), |
1399 | pad_pos_x, PAD_POS_Y, pad_width, PAD_HEIGHT); | 1403 | pad_pos_x, PAD_POS_Y, pad_width, PAD_HEIGHT); |
1400 | } | 1404 | } |
diff --git a/apps/plugins/bubbles.c b/apps/plugins/bubbles.c index e8618e95bb..da927de01c 100644 --- a/apps/plugins/bubbles.c +++ b/apps/plugins/bubbles.c | |||
@@ -1441,7 +1441,8 @@ static void bubbles_drawboard(struct game_context* bb) { | |||
1441 | if(bb->playboard[i][j].type >= 0 && !bb->playboard[i][j].delete) { | 1441 | if(bb->playboard[i][j].type >= 0 && !bb->playboard[i][j].delete) { |
1442 | rb->lcd_bitmap_part(bubbles_emblem, | 1442 | rb->lcd_bitmap_part(bubbles_emblem, |
1443 | 0, EMBLEM_HEIGHT*bb->playboard[i][j].type, | 1443 | 0, EMBLEM_HEIGHT*bb->playboard[i][j].type, |
1444 | STRIDE(BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), | 1444 | STRIDE( SCREEN_MAIN, |
1445 | BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), | ||
1445 | XOFS+indent+BUBBLE_WIDTH*j+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, | 1446 | XOFS+indent+BUBBLE_WIDTH*j+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, |
1446 | YOFS+ROW_HEIGHT*i+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2+bb->compress*ROW_HEIGHT, | 1447 | YOFS+ROW_HEIGHT*i+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2+bb->compress*ROW_HEIGHT, |
1447 | EMBLEM_WIDTH, EMBLEM_HEIGHT); | 1448 | EMBLEM_WIDTH, EMBLEM_HEIGHT); |
@@ -1458,7 +1459,8 @@ static void bubbles_drawboard(struct game_context* bb) { | |||
1458 | /* display bubble to be shot */ | 1459 | /* display bubble to be shot */ |
1459 | rb->lcd_bitmap_part(bubbles_emblem, | 1460 | rb->lcd_bitmap_part(bubbles_emblem, |
1460 | 0, EMBLEM_HEIGHT*bb->queue[bb->nextinq], | 1461 | 0, EMBLEM_HEIGHT*bb->queue[bb->nextinq], |
1461 | STRIDE(BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), | 1462 | STRIDE( SCREEN_MAIN, |
1463 | BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), | ||
1462 | SHOTX+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, | 1464 | SHOTX+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, |
1463 | SHOTY+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2, | 1465 | SHOTY+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2, |
1464 | EMBLEM_WIDTH, EMBLEM_HEIGHT); | 1466 | EMBLEM_WIDTH, EMBLEM_HEIGHT); |
@@ -1472,7 +1474,8 @@ static void bubbles_drawboard(struct game_context* bb) { | |||
1472 | #ifndef NEXT_BB_X | 1474 | #ifndef NEXT_BB_X |
1473 | rb->lcd_bitmap_part(bubbles_emblem, | 1475 | rb->lcd_bitmap_part(bubbles_emblem, |
1474 | 0, EMBLEM_HEIGHT*bb->queue[(bb->nextinq+1)%NUM_QUEUE], | 1476 | 0, EMBLEM_HEIGHT*bb->queue[(bb->nextinq+1)%NUM_QUEUE], |
1475 | STRIDE(BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), | 1477 | STRIDE( SCREEN_MAIN, |
1478 | BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), | ||
1476 | XOFS/2-BUBBLE_WIDTH/2+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, | 1479 | XOFS/2-BUBBLE_WIDTH/2+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, |
1477 | SHOTY+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2, | 1480 | SHOTY+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2, |
1478 | EMBLEM_WIDTH, EMBLEM_HEIGHT); | 1481 | EMBLEM_WIDTH, EMBLEM_HEIGHT); |
@@ -1484,7 +1487,8 @@ static void bubbles_drawboard(struct game_context* bb) { | |||
1484 | #else | 1487 | #else |
1485 | rb->lcd_bitmap_part(bubbles_emblem, | 1488 | rb->lcd_bitmap_part(bubbles_emblem, |
1486 | 0, EMBLEM_HEIGHT*bb->queue[(bb->nextinq+1)%NUM_QUEUE], | 1489 | 0, EMBLEM_HEIGHT*bb->queue[(bb->nextinq+1)%NUM_QUEUE], |
1487 | STRIDE(BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), | 1490 | STRIDE( SCREEN_MAIN, |
1491 | BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), | ||
1488 | NEXT_BB_X + NEXT_BB_WIDTH/2-BUBBLE_WIDTH/2+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, | 1492 | NEXT_BB_X + NEXT_BB_WIDTH/2-BUBBLE_WIDTH/2+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, |
1489 | NEXT_BB_Y + (BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2 + h, | 1493 | NEXT_BB_Y + (BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2 + h, |
1490 | EMBLEM_WIDTH, EMBLEM_HEIGHT); | 1494 | EMBLEM_WIDTH, EMBLEM_HEIGHT); |
@@ -1607,7 +1611,9 @@ static int bubbles_fire(struct game_context* bb) { | |||
1607 | /* display shot */ | 1611 | /* display shot */ |
1608 | bubbles_drawboard(bb); | 1612 | bubbles_drawboard(bb); |
1609 | rb->lcd_bitmap_part(bubbles_emblem, 0, EMBLEM_HEIGHT*bubblecur, | 1613 | rb->lcd_bitmap_part(bubbles_emblem, 0, EMBLEM_HEIGHT*bubblecur, |
1610 | STRIDE(BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), | 1614 | STRIDE( SCREEN_MAIN, |
1615 | BMPWIDTH_bubbles_emblem, | ||
1616 | BMPHEIGHT_bubbles_emblem), | ||
1611 | SHOTX+tempxofs+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, | 1617 | SHOTX+tempxofs+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, |
1612 | SHOTY+tempyofs+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2, | 1618 | SHOTY+tempyofs+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2, |
1613 | EMBLEM_WIDTH, EMBLEM_HEIGHT); | 1619 | EMBLEM_WIDTH, EMBLEM_HEIGHT); |
@@ -2070,7 +2076,9 @@ static int bubbles_fall(struct game_context* bb) { | |||
2070 | 2076 | ||
2071 | rb->lcd_bitmap_part(bubbles_emblem, 0, | 2077 | rb->lcd_bitmap_part(bubbles_emblem, 0, |
2072 | EMBLEM_HEIGHT*bb->playboard[i][j].type, | 2078 | EMBLEM_HEIGHT*bb->playboard[i][j].type, |
2073 | STRIDE(BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), | 2079 | STRIDE( SCREEN_MAIN, |
2080 | BMPWIDTH_bubbles_emblem, | ||
2081 | BMPHEIGHT_bubbles_emblem), | ||
2074 | XOFS+indent+BUBBLE_WIDTH*j+ | 2082 | XOFS+indent+BUBBLE_WIDTH*j+ |
2075 | (BUBBLE_WIDTH-EMBLEM_WIDTH)/2+xofs, | 2083 | (BUBBLE_WIDTH-EMBLEM_WIDTH)/2+xofs, |
2076 | YOFS+ROW_HEIGHT*i+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2+ | 2084 | YOFS+ROW_HEIGHT*i+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2+ |
diff --git a/apps/plugins/chessbox/chessbox.c b/apps/plugins/chessbox/chessbox.c index 0369eda174..72a8b238a8 100644 --- a/apps/plugins/chessbox/chessbox.c +++ b/apps/plugins/chessbox/chessbox.c | |||
@@ -134,7 +134,8 @@ static void cb_drawboard (void) { | |||
134 | if ( piece == no_piece ) { | 134 | if ( piece == no_piece ) { |
135 | rb->lcd_bitmap_part ( chessbox_pieces , 0 , | 135 | rb->lcd_bitmap_part ( chessbox_pieces , 0 , |
136 | TILE_HEIGHT * b_color , | 136 | TILE_HEIGHT * b_color , |
137 | STRIDE( BMPWIDTH_chessbox_pieces, | 137 | STRIDE( SCREEN_MAIN, |
138 | BMPWIDTH_chessbox_pieces, | ||
138 | BMPHEIGHT_chessbox_pieces) , | 139 | BMPHEIGHT_chessbox_pieces) , |
139 | XOFS + x*TILE_WIDTH , | 140 | XOFS + x*TILE_WIDTH , |
140 | YOFS + ( 7 - y )*TILE_HEIGHT , | 141 | YOFS + ( 7 - y )*TILE_HEIGHT , |
@@ -147,7 +148,8 @@ static void cb_drawboard (void) { | |||
147 | 4 * TILE_HEIGHT * ( piece - 1 ) + | 148 | 4 * TILE_HEIGHT * ( piece - 1 ) + |
148 | 2 * TILE_HEIGHT * p_color + | 149 | 2 * TILE_HEIGHT * p_color + |
149 | TILE_HEIGHT * b_color , | 150 | TILE_HEIGHT * b_color , |
150 | STRIDE( BMPWIDTH_chessbox_pieces, | 151 | STRIDE( SCREEN_MAIN, |
152 | BMPWIDTH_chessbox_pieces, | ||
151 | BMPHEIGHT_chessbox_pieces) , | 153 | BMPHEIGHT_chessbox_pieces) , |
152 | XOFS + x*TILE_WIDTH , | 154 | XOFS + x*TILE_WIDTH , |
153 | YOFS + (7 - y)*TILE_HEIGHT , | 155 | YOFS + (7 - y)*TILE_HEIGHT , |
diff --git a/apps/plugins/clock/clock_bitmaps.c b/apps/plugins/clock/clock_bitmaps.c index 4ab6bf4f9a..50c31806bc 100644 --- a/apps/plugins/clock/clock_bitmaps.c +++ b/apps/plugins/clock/clock_bitmaps.c | |||
@@ -46,62 +46,67 @@ | |||
46 | 46 | ||
47 | 47 | ||
48 | const struct picture logos[]={ | 48 | const struct picture logos[]={ |
49 | {clock_logo, BMPWIDTH_clock_logo, BMPHEIGHT_clock_logo}, | 49 | {clock_logo, BMPWIDTH_clock_logo, BMPHEIGHT_clock_logo, |
50 | BMPHEIGHT_clock_logo}, | ||
50 | #if NB_SCREENS==2 | 51 | #if NB_SCREENS==2 |
51 | {clock_logo_remote,BMPWIDTH_clock_logo_remote,BMPHEIGHT_clock_logo_remote} | 52 | {clock_logo_remote,BMPWIDTH_clock_logo_remote, |
53 | BMPHEIGHT_clock_logo_remote, BMPHEIGHT_clock_logo_remote} | ||
52 | #endif | 54 | #endif |
53 | }; | 55 | }; |
54 | 56 | ||
55 | const struct picture messages[]={ | 57 | const struct picture messages[]={ |
56 | {clock_messages,BMPWIDTH_clock_messages, | 58 | {clock_messages,BMPWIDTH_clock_messages, BMPHEIGHT_clock_messages, |
57 | BMPHEIGHT_clock_messages/6}, | 59 | BMPHEIGHT_clock_messages/6}, |
58 | #if NB_SCREENS==2 | 60 | #if NB_SCREENS==2 |
59 | {clock_messages_remote,BMPWIDTH_clock_messages_remote, | 61 | {clock_messages_remote,BMPWIDTH_clock_messages_remote, |
60 | BMPHEIGHT_clock_messages_remote/6} | 62 | BMPHEIGHT_clock_messages_remote, BMPHEIGHT_clock_messages_remote/6} |
61 | #endif | 63 | #endif |
62 | }; | 64 | }; |
63 | 65 | ||
64 | const struct picture binary[]={ | 66 | const struct picture binary[]={ |
65 | {clock_binary, | 67 | {clock_binary, BMPWIDTH_clock_binary, BMPHEIGHT_clock_binary, |
66 | BMPWIDTH_clock_binary, BMPHEIGHT_clock_binary/2 }, | 68 | BMPHEIGHT_clock_binary/2 }, |
67 | #if NB_SCREENS==2 | 69 | #if NB_SCREENS==2 |
68 | {clock_binary_remote, | 70 | {clock_binary_remote, BMPWIDTH_clock_binary_remote, |
69 | BMPWIDTH_clock_binary_remote,BMPHEIGHT_clock_binary_remote/2} | 71 | BMPHEIGHT_clock_binary_remote, BMPHEIGHT_clock_binary_remote/2} |
70 | #endif | 72 | #endif |
71 | }; | 73 | }; |
72 | 74 | ||
73 | const struct picture digits[]={ | 75 | const struct picture digits[]={ |
74 | {clock_digits, | 76 | {clock_digits, BMPWIDTH_clock_digits, BMPHEIGHT_clock_digits, |
75 | BMPWIDTH_clock_digits, BMPHEIGHT_clock_digits/13 }, | 77 | BMPHEIGHT_clock_digits/13 }, |
76 | #if NB_SCREENS==2 | 78 | #if NB_SCREENS==2 |
77 | {clock_digits_remote, | 79 | {clock_digits_remote, |
78 | BMPWIDTH_clock_digits_remote,BMPHEIGHT_clock_digits_remote/13} | 80 | BMPWIDTH_clock_digits_remote, BMPHEIGHT_clock_digits_remote, |
81 | BMPHEIGHT_clock_digits_remote/13} | ||
79 | #endif | 82 | #endif |
80 | }; | 83 | }; |
81 | 84 | ||
82 | const struct picture smalldigits[]={ | 85 | const struct picture smalldigits[]={ |
83 | {clock_smalldigits, | 86 | {clock_smalldigits, BMPWIDTH_clock_smalldigits, BMPHEIGHT_clock_smalldigits, |
84 | BMPWIDTH_clock_smalldigits, BMPHEIGHT_clock_smalldigits/13 }, | 87 | BMPHEIGHT_clock_smalldigits/13 }, |
85 | #if NB_SCREENS==2 | 88 | #if NB_SCREENS==2 |
86 | {clock_smalldigits_remote, | 89 | {clock_smalldigits_remote, BMPWIDTH_clock_smalldigits_remote, |
87 | BMPWIDTH_clock_smalldigits_remote,BMPHEIGHT_clock_smalldigits_remote/13} | 90 | BMPHEIGHT_clock_smalldigits_remote, |
91 | BMPHEIGHT_clock_smalldigits_remote/13} | ||
88 | #endif | 92 | #endif |
89 | }; | 93 | }; |
90 | 94 | ||
91 | const struct picture segments[]={ | 95 | const struct picture segments[]={ |
92 | {clock_segments, | 96 | {clock_segments, BMPWIDTH_clock_segments, BMPHEIGHT_clock_segments, |
93 | BMPWIDTH_clock_segments, BMPHEIGHT_clock_segments/13 }, | 97 | BMPHEIGHT_clock_segments/13 }, |
94 | #if NB_SCREENS==2 | 98 | #if NB_SCREENS==2 |
95 | {clock_segments_remote, | 99 | {clock_segments_remote, BMPWIDTH_clock_segments_remote, |
96 | BMPWIDTH_clock_segments_remote,BMPHEIGHT_clock_segments_remote/13} | 100 | BMPHEIGHT_clock_segments_remote, BMPHEIGHT_clock_segments_remote/13} |
97 | #endif | 101 | #endif |
98 | }; | 102 | }; |
99 | 103 | ||
100 | const struct picture smallsegments[]={ | 104 | const struct picture smallsegments[]={ |
101 | {clock_smallsegments, | 105 | {clock_smallsegments, BMPWIDTH_clock_smallsegments, |
102 | BMPWIDTH_clock_smallsegments, BMPHEIGHT_clock_smallsegments/13 }, | 106 | BMPHEIGHT_clock_smallsegments, BMPHEIGHT_clock_smallsegments/13 }, |
103 | #if NB_SCREENS==2 | 107 | #if NB_SCREENS==2 |
104 | {clock_smallsegments_remote, | 108 | {clock_smallsegments_remote, BMPWIDTH_clock_smallsegments_remote, |
105 | BMPWIDTH_clock_smallsegments_remote,BMPHEIGHT_clock_smallsegments_remote/13} | 109 | BMPHEIGHT_clock_smallsegments_remote, |
110 | BMPHEIGHT_clock_smallsegments_remote/13} | ||
106 | #endif | 111 | #endif |
107 | }; | 112 | }; |
diff --git a/apps/plugins/fire.c b/apps/plugins/fire.c index 201d18970f..fff39b38c9 100644 --- a/apps/plugins/fire.c +++ b/apps/plugins/fire.c | |||
@@ -112,7 +112,7 @@ void color_palette_init(fb_data* palette) | |||
112 | palette[i + 224]=LCD_RGBPACK(255, 255, 224 + i); | 112 | palette[i + 224]=LCD_RGBPACK(255, 255, 224 + i); |
113 | } | 113 | } |
114 | #if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_PAL256) | 114 | #if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_PAL256) |
115 | rb->lcd_pal256_update_pal(palette); | 115 | rb->lcd_pal256_update_pal(palette); |
116 | #endif | 116 | #endif |
117 | } | 117 | } |
118 | 118 | ||
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c index 49fb5344ec..63260a4882 100644 --- a/apps/plugins/flipit.c +++ b/apps/plugins/flipit.c | |||
@@ -354,7 +354,8 @@ static int cursor_pos, moves; | |||
354 | static void draw_spot(int p) | 354 | static void draw_spot(int p) |
355 | { | 355 | { |
356 | rb->lcd_bitmap_part( flipit_tokens, 0, spots[p] * TK_HEIGHT, | 356 | rb->lcd_bitmap_part( flipit_tokens, 0, spots[p] * TK_HEIGHT, |
357 | STRIDE(BMPWIDTH_flipit_tokens, BMPHEIGHT_flipit_tokens), | 357 | STRIDE(SCREEN_MAIN, BMPWIDTH_flipit_tokens, |
358 | BMPHEIGHT_flipit_tokens), | ||
358 | GRID_LEFT + (p%5) * (TK_WIDTH+TK_SPACE), | 359 | GRID_LEFT + (p%5) * (TK_WIDTH+TK_SPACE), |
359 | GRID_TOP + (p/5) * (TK_HEIGHT+TK_SPACE), | 360 | GRID_TOP + (p/5) * (TK_HEIGHT+TK_SPACE), |
360 | TK_WIDTH, TK_HEIGHT ); | 361 | TK_WIDTH, TK_HEIGHT ); |
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c index 33ec343a87..1886ed4b49 100644 --- a/apps/plugins/invadrox.c +++ b/apps/plugins/invadrox.c | |||
@@ -684,7 +684,8 @@ void draw_number(int x, int y, int num, int digits) | |||
684 | d = num % 10; | 684 | d = num % 10; |
685 | num = num / 10; | 685 | num = num / 10; |
686 | rb->lcd_bitmap_part(invadrox_numbers, d * NUMBERS_WIDTH, 0, | 686 | rb->lcd_bitmap_part(invadrox_numbers, d * NUMBERS_WIDTH, 0, |
687 | STRIDE( BMPWIDTH_invadrox_numbers, | 687 | STRIDE( SCREEN_MAIN, |
688 | BMPWIDTH_invadrox_numbers, | ||
688 | BMPHEIGHT_invadrox_numbers), | 689 | BMPHEIGHT_invadrox_numbers), |
689 | x + i * (NUMBERS_WIDTH + NUM_SPACING), y, | 690 | x + i * (NUMBERS_WIDTH + NUM_SPACING), y, |
690 | NUMBERS_WIDTH, FONT_HEIGHT); | 691 | NUMBERS_WIDTH, FONT_HEIGHT); |
@@ -715,7 +716,8 @@ void draw_lives(void) | |||
715 | int i; | 716 | int i; |
716 | /* Lives num */ | 717 | /* Lives num */ |
717 | rb->lcd_bitmap_part(invadrox_numbers, lives * NUMBERS_WIDTH, 0, | 718 | rb->lcd_bitmap_part(invadrox_numbers, lives * NUMBERS_WIDTH, 0, |
718 | STRIDE( BMPWIDTH_invadrox_numbers, | 719 | STRIDE( SCREEN_MAIN, |
720 | BMPWIDTH_invadrox_numbers, | ||
719 | BMPHEIGHT_invadrox_numbers), | 721 | BMPHEIGHT_invadrox_numbers), |
720 | PLAYFIELD_X + LIVES_X, PLAYFIELD_Y + 2, | 722 | PLAYFIELD_X + LIVES_X, PLAYFIELD_Y + 2, |
721 | NUMBERS_WIDTH, FONT_HEIGHT); | 723 | NUMBERS_WIDTH, FONT_HEIGHT); |
@@ -723,7 +725,8 @@ void draw_lives(void) | |||
723 | /* Ships */ | 725 | /* Ships */ |
724 | for (i = 0; i < (lives - 1); i++) { | 726 | for (i = 0; i < (lives - 1); i++) { |
725 | rb->lcd_bitmap_part(invadrox_ships, 0, 0, | 727 | rb->lcd_bitmap_part(invadrox_ships, 0, 0, |
726 | STRIDE( BMPWIDTH_invadrox_ships, | 728 | STRIDE( SCREEN_MAIN, |
729 | BMPWIDTH_invadrox_ships, | ||
727 | BMPHEIGHT_invadrox_ships), | 730 | BMPHEIGHT_invadrox_ships), |
728 | PLAYFIELD_X + LIVES_X + SHIP_WIDTH + i * (SHIP_WIDTH + NUM_SPACING), | 731 | PLAYFIELD_X + LIVES_X + SHIP_WIDTH + i * (SHIP_WIDTH + NUM_SPACING), |
729 | PLAYFIELD_Y + 1, SHIP_WIDTH, SHIP_HEIGHT); | 732 | PLAYFIELD_Y + 1, SHIP_WIDTH, SHIP_HEIGHT); |
@@ -747,7 +750,8 @@ inline void draw_aliens(void) | |||
747 | for (i = 0; i < 5 * ALIENS; i++) { | 750 | for (i = 0; i < 5 * ALIENS; i++) { |
748 | rb->lcd_bitmap_part(invadrox_aliens, aliens[i].x & 1 ? ALIEN_WIDTH : 0, | 751 | rb->lcd_bitmap_part(invadrox_aliens, aliens[i].x & 1 ? ALIEN_WIDTH : 0, |
749 | aliens[i].type * ALIEN_HEIGHT, | 752 | aliens[i].type * ALIEN_HEIGHT, |
750 | STRIDE( BMPWIDTH_invadrox_aliens, | 753 | STRIDE( SCREEN_MAIN, |
754 | BMPWIDTH_invadrox_aliens, | ||
751 | BMPHEIGHT_invadrox_aliens), | 755 | BMPHEIGHT_invadrox_aliens), |
752 | PLAYFIELD_X + LIVES_X + aliens[i].x * ALIEN_SPEED, | 756 | PLAYFIELD_X + LIVES_X + aliens[i].x * ALIEN_SPEED, |
753 | ALIEN_START_Y + aliens[i].y * ALIEN_HEIGHT, | 757 | ALIEN_START_Y + aliens[i].y * ALIEN_HEIGHT, |
@@ -888,7 +892,8 @@ bool move_aliens(void) | |||
888 | rb->lcd_bitmap_part(invadrox_aliens, | 892 | rb->lcd_bitmap_part(invadrox_aliens, |
889 | aliens[curr_alien].x & 1 ? ALIEN_WIDTH : 0, | 893 | aliens[curr_alien].x & 1 ? ALIEN_WIDTH : 0, |
890 | aliens[curr_alien].type * ALIEN_HEIGHT, | 894 | aliens[curr_alien].type * ALIEN_HEIGHT, |
891 | STRIDE( BMPWIDTH_invadrox_aliens, | 895 | STRIDE( SCREEN_MAIN, |
896 | BMPWIDTH_invadrox_aliens, | ||
892 | BMPHEIGHT_invadrox_aliens), | 897 | BMPHEIGHT_invadrox_aliens), |
893 | x, y, ALIEN_WIDTH, ALIEN_HEIGHT); | 898 | x, y, ALIEN_WIDTH, ALIEN_HEIGHT); |
894 | 899 | ||
@@ -918,7 +923,8 @@ inline void draw_ship(void) | |||
918 | 923 | ||
919 | /* Draw ship */ | 924 | /* Draw ship */ |
920 | rb->lcd_bitmap_part(invadrox_ships, 0, ship_frame * SHIP_HEIGHT, | 925 | rb->lcd_bitmap_part(invadrox_ships, 0, ship_frame * SHIP_HEIGHT, |
921 | STRIDE( BMPWIDTH_invadrox_ships, | 926 | STRIDE( SCREEN_MAIN, |
927 | BMPWIDTH_invadrox_ships, | ||
922 | BMPHEIGHT_invadrox_ships), | 928 | BMPHEIGHT_invadrox_ships), |
923 | ship_x, SHIP_Y, SHIP_WIDTH, SHIP_HEIGHT); | 929 | ship_x, SHIP_Y, SHIP_WIDTH, SHIP_HEIGHT); |
924 | if (ship_hit) { | 930 | if (ship_hit) { |
@@ -1160,7 +1166,8 @@ inline void draw_bomb(int i) | |||
1160 | { | 1166 | { |
1161 | rb->lcd_bitmap_part(invadrox_bombs, bombs[i].type * BOMB_WIDTH, | 1167 | rb->lcd_bitmap_part(invadrox_bombs, bombs[i].type * BOMB_WIDTH, |
1162 | bombs[i].frame * BOMB_HEIGHT, | 1168 | bombs[i].frame * BOMB_HEIGHT, |
1163 | STRIDE( BMPWIDTH_invadrox_bombs, | 1169 | STRIDE( SCREEN_MAIN, |
1170 | BMPWIDTH_invadrox_bombs, | ||
1164 | BMPHEIGHT_invadrox_bombs), | 1171 | BMPHEIGHT_invadrox_bombs), |
1165 | bombs[i].x, bombs[i].y, | 1172 | bombs[i].x, bombs[i].y, |
1166 | BOMB_WIDTH, BOMB_HEIGHT); | 1173 | BOMB_WIDTH, BOMB_HEIGHT); |
@@ -1262,7 +1269,8 @@ void move_bombs(void) | |||
1262 | bombs[i].state = S_EXPLODE * 4; | 1269 | bombs[i].state = S_EXPLODE * 4; |
1263 | bombs[i].target = TARGET_SHIP; | 1270 | bombs[i].target = TARGET_SHIP; |
1264 | rb->lcd_bitmap_part(invadrox_ships, 0, 1 * SHIP_HEIGHT, | 1271 | rb->lcd_bitmap_part(invadrox_ships, 0, 1 * SHIP_HEIGHT, |
1265 | STRIDE( BMPWIDTH_invadrox_ships, | 1272 | STRIDE( SCREEN_MAIN, |
1273 | BMPWIDTH_invadrox_ships, | ||
1266 | BMPHEIGHT_invadrox_ships), | 1274 | BMPHEIGHT_invadrox_ships), |
1267 | ship_x, SHIP_Y, | 1275 | ship_x, SHIP_Y, |
1268 | SHIP_WIDTH, SHIP_HEIGHT); | 1276 | SHIP_WIDTH, SHIP_HEIGHT); |
diff --git a/apps/plugins/jackpot.c b/apps/plugins/jackpot.c index e13dcf8994..4ab1d3a837 100644 --- a/apps/plugins/jackpot.c +++ b/apps/plugins/jackpot.c | |||
@@ -62,9 +62,11 @@ static unsigned long char_patterns[NB_SLOTS]; | |||
62 | #endif | 62 | #endif |
63 | 63 | ||
64 | const struct picture jackpot_pictures[]={ | 64 | const struct picture jackpot_pictures[]={ |
65 | {jackpot_slots, BMPWIDTH_jackpot_slots,PICTURE_HEIGHT}, | 65 | {jackpot_slots, BMPWIDTH_jackpot_slots, BMPHEIGHT_jackpot_slots, |
66 | PICTURE_HEIGHT}, | ||
66 | #if NB_SCREENS==2 | 67 | #if NB_SCREENS==2 |
67 | {jackpot_slots_remote,BMPWIDTH_jackpot_slots_remote,REMOTE_PICTURE_HEIGHT} | 68 | {jackpot_slots_remote,BMPWIDTH_jackpot_slots_remote, |
69 | BMPHEIGHT_jackpot_slots_remote, REMOTE_PICTURE_HEIGHT} | ||
68 | #endif | 70 | #endif |
69 | }; | 71 | }; |
70 | 72 | ||
@@ -172,7 +174,7 @@ void jackpot_display_slot_machine(struct jackpot* game, struct screen* display) | |||
172 | #else | 174 | #else |
173 | const struct picture* picture= &(jackpot_pictures[display->screen_type]); | 175 | const struct picture* picture= &(jackpot_pictures[display->screen_type]); |
174 | int pos_x=(display->getwidth()-NB_SLOTS*(picture->width+1))/2; | 176 | int pos_x=(display->getwidth()-NB_SLOTS*(picture->width+1))/2; |
175 | int pos_y=(display->getheight()-(picture->height))/2; | 177 | int pos_y=(display->getheight()-(picture->slide_height))/2; |
176 | #endif /* HAVE_LCD_CHARCELLS */ | 178 | #endif /* HAVE_LCD_CHARCELLS */ |
177 | for(i=0;i<NB_SLOTS;i++) | 179 | for(i=0;i<NB_SLOTS;i++) |
178 | { | 180 | { |
@@ -181,7 +183,7 @@ void jackpot_display_slot_machine(struct jackpot* game, struct screen* display) | |||
181 | int state_y=(game->slot_state[i]*7)/PICTURE_ROTATION_STEPS; | 183 | int state_y=(game->slot_state[i]*7)/PICTURE_ROTATION_STEPS; |
182 | #else | 184 | #else |
183 | int state_y= | 185 | int state_y= |
184 | (picture->height*game->slot_state[i])/PICTURE_ROTATION_STEPS; | 186 | (picture->slide_height*game->slot_state[i])/PICTURE_ROTATION_STEPS; |
185 | #endif /* HAVE_LCD_CHARCELLS */ | 187 | #endif /* HAVE_LCD_CHARCELLS */ |
186 | int previous_state_y=game->state_y[display->screen_type][i]; | 188 | int previous_state_y=game->state_y[display->screen_type][i]; |
187 | if(state_y==previous_state_y) | 189 | if(state_y==previous_state_y) |
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c index 01c5e1ea0b..f049fdca5c 100644 --- a/apps/plugins/jewels.c +++ b/apps/plugins/jewels.c | |||
@@ -512,13 +512,15 @@ static void jewels_drawboard(struct game_context* bj) { | |||
512 | TILE_WIDTH, TILE_HEIGHT); | 512 | TILE_WIDTH, TILE_HEIGHT); |
513 | rb->lcd_bitmap_transparent_part(jewels, | 513 | rb->lcd_bitmap_transparent_part(jewels, |
514 | 0, TILE_HEIGHT*(bj->playboard[i+1][j].type), | 514 | 0, TILE_HEIGHT*(bj->playboard[i+1][j].type), |
515 | STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), | 515 | STRIDE( SCREEN_MAIN, |
516 | BMPWIDTH_jewels, BMPHEIGHT_jewels), | ||
516 | j*TILE_WIDTH, i*TILE_HEIGHT+YOFS, | 517 | j*TILE_WIDTH, i*TILE_HEIGHT+YOFS, |
517 | TILE_WIDTH, TILE_HEIGHT); | 518 | TILE_WIDTH, TILE_HEIGHT); |
518 | #else | 519 | #else |
519 | rb->lcd_bitmap_part(jewels, | 520 | rb->lcd_bitmap_part(jewels, |
520 | 0, TILE_HEIGHT*(bj->playboard[i+1][j].type), | 521 | 0, TILE_HEIGHT*(bj->playboard[i+1][j].type), |
521 | STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), | 522 | STRIDE( SCREEN_MAIN, |
523 | BMPWIDTH_jewels, BMPHEIGHT_jewels), | ||
522 | j*TILE_WIDTH, i*TILE_HEIGHT+YOFS, | 524 | j*TILE_WIDTH, i*TILE_HEIGHT+YOFS, |
523 | TILE_WIDTH, TILE_HEIGHT); | 525 | TILE_WIDTH, TILE_HEIGHT); |
524 | #endif | 526 | #endif |
@@ -730,7 +732,9 @@ static void jewels_putjewels(struct game_context* bj){ | |||
730 | #ifdef HAVE_LCD_COLOR | 732 | #ifdef HAVE_LCD_COLOR |
731 | rb->lcd_bitmap_transparent_part(jewels, 0, | 733 | rb->lcd_bitmap_transparent_part(jewels, 0, |
732 | TILE_HEIGHT*(bj->playboard[i][j].type), | 734 | TILE_HEIGHT*(bj->playboard[i][j].type), |
733 | STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), | 735 | STRIDE( SCREEN_MAIN, |
736 | BMPWIDTH_jewels, | ||
737 | BMPHEIGHT_jewels), | ||
734 | j*TILE_WIDTH, | 738 | j*TILE_WIDTH, |
735 | (i-1)*TILE_HEIGHT+YOFS+ | 739 | (i-1)*TILE_HEIGHT+YOFS+ |
736 | ((((TILE_HEIGHT<<10)*k)/8)>>10), | 740 | ((((TILE_HEIGHT<<10)*k)/8)>>10), |
@@ -738,7 +742,9 @@ static void jewels_putjewels(struct game_context* bj){ | |||
738 | #else | 742 | #else |
739 | rb->lcd_bitmap_part(jewels, 0, | 743 | rb->lcd_bitmap_part(jewels, 0, |
740 | TILE_HEIGHT*(bj->playboard[i][j].type), | 744 | TILE_HEIGHT*(bj->playboard[i][j].type), |
741 | STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), | 745 | STRIDE( SCREEN_MAIN, |
746 | BMPWIDTH_jewels, | ||
747 | BMPHEIGHT_jewels), | ||
742 | j*TILE_WIDTH, | 748 | j*TILE_WIDTH, |
743 | (i-1)*TILE_HEIGHT+YOFS+ | 749 | (i-1)*TILE_HEIGHT+YOFS+ |
744 | ((((TILE_HEIGHT<<10)*k)/8)>>10), | 750 | ((((TILE_HEIGHT<<10)*k)/8)>>10), |
@@ -958,7 +964,8 @@ static unsigned int jewels_swapjewels(struct game_context* bj, | |||
958 | rb->lcd_bitmap_transparent_part(jewels, | 964 | rb->lcd_bitmap_transparent_part(jewels, |
959 | 0, TILE_HEIGHT*(bj->playboard | 965 | 0, TILE_HEIGHT*(bj->playboard |
960 | [y+1+vertmod][x+horzmod].type), | 966 | [y+1+vertmod][x+horzmod].type), |
961 | STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), | 967 | STRIDE( SCREEN_MAIN, |
968 | BMPWIDTH_jewels, BMPHEIGHT_jewels), | ||
962 | (x+horzmod)*TILE_WIDTH-horzmod* | 969 | (x+horzmod)*TILE_WIDTH-horzmod* |
963 | ((((movelen<<10)*k)/8)>>10), | 970 | ((((movelen<<10)*k)/8)>>10), |
964 | (y+vertmod)*TILE_HEIGHT-vertmod* | 971 | (y+vertmod)*TILE_HEIGHT-vertmod* |
@@ -966,7 +973,8 @@ static unsigned int jewels_swapjewels(struct game_context* bj, | |||
966 | TILE_WIDTH, TILE_HEIGHT); | 973 | TILE_WIDTH, TILE_HEIGHT); |
967 | rb->lcd_bitmap_transparent_part(jewels, | 974 | rb->lcd_bitmap_transparent_part(jewels, |
968 | 0, TILE_HEIGHT*(bj->playboard[y+1][x].type), | 975 | 0, TILE_HEIGHT*(bj->playboard[y+1][x].type), |
969 | STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), | 976 | STRIDE( SCREEN_MAIN, |
977 | BMPWIDTH_jewels, BMPHEIGHT_jewels), | ||
970 | x*TILE_WIDTH+horzmod* | 978 | x*TILE_WIDTH+horzmod* |
971 | ((((movelen<<10)*k)/8)>>10), | 979 | ((((movelen<<10)*k)/8)>>10), |
972 | y*TILE_HEIGHT+vertmod* | 980 | y*TILE_HEIGHT+vertmod* |
@@ -976,7 +984,8 @@ static unsigned int jewels_swapjewels(struct game_context* bj, | |||
976 | rb->lcd_bitmap_part(jewels, | 984 | rb->lcd_bitmap_part(jewels, |
977 | 0, TILE_HEIGHT*(bj->playboard | 985 | 0, TILE_HEIGHT*(bj->playboard |
978 | [y+1+vertmod][x+horzmod].type), | 986 | [y+1+vertmod][x+horzmod].type), |
979 | STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), | 987 | STRIDE( SCREEN_MAIN, |
988 | BMPWIDTH_jewels, BMPHEIGHT_jewels), | ||
980 | (x+horzmod)*TILE_WIDTH-horzmod* | 989 | (x+horzmod)*TILE_WIDTH-horzmod* |
981 | ((((movelen<<10)*k)/8)>>10), | 990 | ((((movelen<<10)*k)/8)>>10), |
982 | (y+vertmod)*TILE_HEIGHT-vertmod* | 991 | (y+vertmod)*TILE_HEIGHT-vertmod* |
@@ -985,7 +994,8 @@ static unsigned int jewels_swapjewels(struct game_context* bj, | |||
985 | rb->lcd_set_drawmode(DRMODE_FG); | 994 | rb->lcd_set_drawmode(DRMODE_FG); |
986 | rb->lcd_bitmap_part(jewels, | 995 | rb->lcd_bitmap_part(jewels, |
987 | 0, TILE_HEIGHT*(bj->playboard[y+1][x].type), | 996 | 0, TILE_HEIGHT*(bj->playboard[y+1][x].type), |
988 | STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), | 997 | STRIDE( SCREEN_MAIN, |
998 | BMPWIDTH_jewels, BMPHEIGHT_jewels), | ||
989 | x*TILE_WIDTH+horzmod* | 999 | x*TILE_WIDTH+horzmod* |
990 | ((((movelen<<10)*k)/8)>>10), | 1000 | ((((movelen<<10)*k)/8)>>10), |
991 | y*TILE_HEIGHT+vertmod* | 1001 | y*TILE_HEIGHT+vertmod* |
diff --git a/apps/plugins/lib/picture.c b/apps/plugins/lib/picture.c index a759b945b6..7717b76eeb 100644 --- a/apps/plugins/lib/picture.c +++ b/apps/plugins/lib/picture.c | |||
@@ -26,15 +26,15 @@ void picture_draw(struct screen* display, const struct picture* picture, | |||
26 | display->bitmap( | 26 | display->bitmap( |
27 | picture->data, | 27 | picture->data, |
28 | x, y, | 28 | x, y, |
29 | picture->width, picture->height | 29 | picture->width, picture->slide_height |
30 | ); | 30 | ); |
31 | } | 31 | } |
32 | 32 | ||
33 | /** | 33 | /** |
34 | * Draws a part of the given picture on the given screen | 34 | * Draws a part of the given picture on the given screen |
35 | * Use it when the data contains multiple pictures from top to bottom. | 35 | * Use it when the data contains multiple pictures from top to bottom. |
36 | * In that case, picture.height represents the height of one picture, | 36 | * In that case, picture.slide_height represents the height of one picture, |
37 | * not the whole set. | 37 | * not the whole set. picture.height represents the height of the whole image |
38 | * @param display the screen where to display the picture | 38 | * @param display the screen where to display the picture |
39 | * @param picture the picture's data, only a part will be displayed | 39 | * @param picture the picture's data, only a part will be displayed |
40 | * @param yoffset display the data in the picture from yoffset to | 40 | * @param yoffset display the data in the picture from yoffset to |
@@ -49,9 +49,9 @@ void vertical_picture_draw_part(struct screen* display, const struct picture* pi | |||
49 | picture->data, | 49 | picture->data, |
50 | /*slice into picture->data */ | 50 | /*slice into picture->data */ |
51 | 0, yoffset, | 51 | 0, yoffset, |
52 | picture->width, | 52 | STRIDE(display->screen_type, picture->width, picture->height), |
53 | /* Position on the screen */ | 53 | /* Position on the screen */ |
54 | x, y, picture->width, picture->height | 54 | x, y, picture->width, picture->slide_height |
55 | ); | 55 | ); |
56 | } | 56 | } |
57 | 57 | ||
@@ -68,5 +68,6 @@ void vertical_picture_draw_part(struct screen* display, const struct picture* pi | |||
68 | void vertical_picture_draw_sprite(struct screen* display, const struct picture* picture, | 68 | void vertical_picture_draw_sprite(struct screen* display, const struct picture* picture, |
69 | int sprite_no, | 69 | int sprite_no, |
70 | int x, int y){ | 70 | int x, int y){ |
71 | vertical_picture_draw_part(display, picture, sprite_no*picture->height, x, y); | 71 | vertical_picture_draw_part( display, picture, |
72 | sprite_no*picture->slide_height, x, y); | ||
72 | } | 73 | } |
diff --git a/apps/plugins/lib/picture.h b/apps/plugins/lib/picture.h index 0013489039..7aa9899018 100644 --- a/apps/plugins/lib/picture.h +++ b/apps/plugins/lib/picture.h | |||
@@ -27,6 +27,7 @@ struct picture{ | |||
27 | const void* data; | 27 | const void* data; |
28 | int width; | 28 | int width; |
29 | int height; | 29 | int height; |
30 | int slide_height; | ||
30 | }; | 31 | }; |
31 | 32 | ||
32 | void picture_draw(struct screen* display, const struct picture* picture, | 33 | void picture_draw(struct screen* display, const struct picture* picture, |
diff --git a/apps/plugins/matrix.c b/apps/plugins/matrix.c index 0d75986bb6..e6e0fa1175 100644 --- a/apps/plugins/matrix.c +++ b/apps/plugins/matrix.c | |||
@@ -213,12 +213,14 @@ static void matrix_blit_char(const int row, const int col, int cha) | |||
213 | 213 | ||
214 | if (matrix[row][col].bold == 1) { | 214 | if (matrix[row][col].bold == 1) { |
215 | rb->lcd_bitmap_part(matrix_bold, cha*COL_W, 0, | 215 | rb->lcd_bitmap_part(matrix_bold, cha*COL_W, 0, |
216 | STRIDE(BMPWIDTH_matrix_bold, BMPHEIGHT_matrix_bold), | 216 | STRIDE( SCREEN_MAIN, |
217 | BMPWIDTH_matrix_bold, BMPHEIGHT_matrix_bold), | ||
217 | col*COL_W + LEFTMARGIN, row*COL_H + TOPMARGIN, COL_W, COL_H); | 218 | col*COL_W + LEFTMARGIN, row*COL_H + TOPMARGIN, COL_W, COL_H); |
218 | } | 219 | } |
219 | else { | 220 | else { |
220 | rb->lcd_bitmap_part(matrix_normal, cha*COL_W, 0, | 221 | rb->lcd_bitmap_part(matrix_normal, cha*COL_W, 0, |
221 | STRIDE(BMPWIDTH_matrix_normal, BMPHEIGHT_matrix_normal), | 222 | STRIDE( SCREEN_MAIN, |
223 | BMPWIDTH_matrix_normal, BMPHEIGHT_matrix_normal), | ||
222 | col*COL_W + LEFTMARGIN, row*COL_H + TOPMARGIN, COL_W, COL_H); | 224 | col*COL_W + LEFTMARGIN, row*COL_H + TOPMARGIN, COL_W, COL_H); |
223 | } | 225 | } |
224 | } | 226 | } |
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c index f0fe0cdb6f..2766bb613c 100644 --- a/apps/plugins/pegbox.c +++ b/apps/plugins/pegbox.c | |||
@@ -747,7 +747,8 @@ static void pegbox_draw_board(struct game_context* pb) | |||
747 | 747 | ||
748 | if(type != SPACE) { | 748 | if(type != SPACE) { |
749 | rb->lcd_bitmap_part(pegbox_pieces, 0, (type-1)*PIECE_HEIGHT, | 749 | rb->lcd_bitmap_part(pegbox_pieces, 0, (type-1)*PIECE_HEIGHT, |
750 | STRIDE(BMPWIDTH_pegbox_pieces,BMPHEIGHT_pegbox_pieces), | 750 | STRIDE( SCREEN_MAIN, |
751 | BMPWIDTH_pegbox_pieces,BMPHEIGHT_pegbox_pieces), | ||
751 | c * PIECE_WIDTH + BOARD_X, | 752 | c * PIECE_WIDTH + BOARD_X, |
752 | r * PIECE_HEIGHT + BOARD_Y, PIECE_WIDTH, | 753 | r * PIECE_HEIGHT + BOARD_Y, PIECE_WIDTH, |
753 | PIECE_HEIGHT); | 754 | PIECE_HEIGHT); |
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c index 2f1d366960..a5daafd8e9 100644 --- a/apps/plugins/sliding_puzzle.c +++ b/apps/plugins/sliding_puzzle.c | |||
@@ -407,7 +407,8 @@ static void draw_spot(int p, int x, int y) | |||
407 | an appropriate hole graphic */ | 407 | an appropriate hole graphic */ |
408 | rb->lcd_bitmap_part(sliding_puzzle, ((p-1)%SPOTS_X)*SPOTS_WIDTH, | 408 | rb->lcd_bitmap_part(sliding_puzzle, ((p-1)%SPOTS_X)*SPOTS_WIDTH, |
409 | ((p-1)/SPOTS_X)*SPOTS_HEIGHT, | 409 | ((p-1)/SPOTS_X)*SPOTS_HEIGHT, |
410 | STRIDE(BMPWIDTH_sliding_puzzle, BMPHEIGHT_sliding_puzzle), | 410 | STRIDE( SCREEN_MAIN, |
411 | BMPWIDTH_sliding_puzzle, BMPHEIGHT_sliding_puzzle), | ||
411 | x, y, SPOTS_WIDTH, SPOTS_HEIGHT); | 412 | x, y, SPOTS_WIDTH, SPOTS_HEIGHT); |
412 | #else | 413 | #else |
413 | /* just draw a black rectangle */ | 414 | /* just draw a black rectangle */ |
@@ -421,7 +422,8 @@ static void draw_spot(int p, int x, int y) | |||
421 | { | 422 | { |
422 | rb->lcd_bitmap_part( puzzle_bmp_ptr, ((p-1)%SPOTS_X)*SPOTS_WIDTH, | 423 | rb->lcd_bitmap_part( puzzle_bmp_ptr, ((p-1)%SPOTS_X)*SPOTS_WIDTH, |
423 | ((p-1)/SPOTS_X)*SPOTS_HEIGHT, | 424 | ((p-1)/SPOTS_X)*SPOTS_HEIGHT, |
424 | STRIDE(BMPWIDTH_sliding_puzzle, BMPHEIGHT_sliding_puzzle), | 425 | STRIDE( SCREEN_MAIN, |
426 | BMPWIDTH_sliding_puzzle, BMPHEIGHT_sliding_puzzle), | ||
425 | x, y, SPOTS_WIDTH, SPOTS_HEIGHT); | 427 | x, y, SPOTS_WIDTH, SPOTS_HEIGHT); |
426 | } else { | 428 | } else { |
427 | rb->lcd_drawrect(x, y, SPOTS_WIDTH, SPOTS_HEIGHT); | 429 | rb->lcd_drawrect(x, y, SPOTS_WIDTH, SPOTS_HEIGHT); |
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c index 0d8a0821e5..63a808877b 100644 --- a/apps/plugins/sokoban.c +++ b/apps/plugins/sokoban.c | |||
@@ -982,43 +982,57 @@ static void update_screen(void) | |||
982 | 982 | ||
983 | case ' ': /* floor */ | 983 | case ' ': /* floor */ |
984 | rb->lcd_bitmap_part(sokoban_tiles, 0, 0*SOKOBAN_TILESIZE, | 984 | rb->lcd_bitmap_part(sokoban_tiles, 0, 0*SOKOBAN_TILESIZE, |
985 | STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles), | 985 | STRIDE( SCREEN_MAIN, |
986 | BMPWIDTH_sokoban_tiles, | ||
987 | BMPHEIGHT_sokoban_tiles), | ||
986 | c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); | 988 | c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); |
987 | break; | 989 | break; |
988 | 990 | ||
989 | case '#': /* wall */ | 991 | case '#': /* wall */ |
990 | rb->lcd_bitmap_part(sokoban_tiles, 0, 1*SOKOBAN_TILESIZE, | 992 | rb->lcd_bitmap_part(sokoban_tiles, 0, 1*SOKOBAN_TILESIZE, |
991 | STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles), | 993 | STRIDE( SCREEN_MAIN, |
994 | BMPWIDTH_sokoban_tiles, | ||
995 | BMPHEIGHT_sokoban_tiles), | ||
992 | c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); | 996 | c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); |
993 | break; | 997 | break; |
994 | 998 | ||
995 | case '$': /* box */ | 999 | case '$': /* box */ |
996 | rb->lcd_bitmap_part(sokoban_tiles, 0, 2*SOKOBAN_TILESIZE, | 1000 | rb->lcd_bitmap_part(sokoban_tiles, 0, 2*SOKOBAN_TILESIZE, |
997 | STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles), | 1001 | STRIDE( SCREEN_MAIN, |
1002 | BMPWIDTH_sokoban_tiles, | ||
1003 | BMPHEIGHT_sokoban_tiles), | ||
998 | c, r, SOKOBAN_TILESIZE,SOKOBAN_TILESIZE); | 1004 | c, r, SOKOBAN_TILESIZE,SOKOBAN_TILESIZE); |
999 | break; | 1005 | break; |
1000 | 1006 | ||
1001 | case '*': /* box on goal */ | 1007 | case '*': /* box on goal */ |
1002 | rb->lcd_bitmap_part(sokoban_tiles, 0, 3*SOKOBAN_TILESIZE, | 1008 | rb->lcd_bitmap_part(sokoban_tiles, 0, 3*SOKOBAN_TILESIZE, |
1003 | STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles), | 1009 | STRIDE( SCREEN_MAIN, |
1010 | BMPWIDTH_sokoban_tiles, | ||
1011 | BMPHEIGHT_sokoban_tiles), | ||
1004 | c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); | 1012 | c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); |
1005 | break; | 1013 | break; |
1006 | 1014 | ||
1007 | case '.': /* goal */ | 1015 | case '.': /* goal */ |
1008 | rb->lcd_bitmap_part(sokoban_tiles, 0, 4*SOKOBAN_TILESIZE, | 1016 | rb->lcd_bitmap_part(sokoban_tiles, 0, 4*SOKOBAN_TILESIZE, |
1009 | STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles), | 1017 | STRIDE( SCREEN_MAIN, |
1018 | BMPWIDTH_sokoban_tiles, | ||
1019 | BMPHEIGHT_sokoban_tiles), | ||
1010 | c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); | 1020 | c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); |
1011 | break; | 1021 | break; |
1012 | 1022 | ||
1013 | case '@': /* player */ | 1023 | case '@': /* player */ |
1014 | rb->lcd_bitmap_part(sokoban_tiles, 0, 5*SOKOBAN_TILESIZE, | 1024 | rb->lcd_bitmap_part(sokoban_tiles, 0, 5*SOKOBAN_TILESIZE, |
1015 | STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles), | 1025 | STRIDE( SCREEN_MAIN, |
1026 | BMPWIDTH_sokoban_tiles, | ||
1027 | BMPHEIGHT_sokoban_tiles), | ||
1016 | c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); | 1028 | c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); |
1017 | break; | 1029 | break; |
1018 | 1030 | ||
1019 | case '+': /* player on goal */ | 1031 | case '+': /* player on goal */ |
1020 | rb->lcd_bitmap_part(sokoban_tiles, 0, 6*SOKOBAN_TILESIZE, | 1032 | rb->lcd_bitmap_part(sokoban_tiles, 0, 6*SOKOBAN_TILESIZE, |
1021 | STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles), | 1033 | STRIDE( SCREEN_MAIN, |
1034 | BMPWIDTH_sokoban_tiles, | ||
1035 | BMPHEIGHT_sokoban_tiles), | ||
1022 | c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); | 1036 | c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); |
1023 | break; | 1037 | break; |
1024 | } | 1038 | } |
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c index 2296a6ef5a..2fdba18610 100644 --- a/apps/plugins/solitaire.c +++ b/apps/plugins/solitaire.c | |||
@@ -623,7 +623,8 @@ static void draw_card( card_t *card, int x, int y, | |||
623 | { | 623 | { |
624 | rb->lcd_bitmap_part( card_deck, CARD_GFX_WIDTH * card->num, | 624 | rb->lcd_bitmap_part( card_deck, CARD_GFX_WIDTH * card->num, |
625 | CARD_GFX_HEIGHT * card->suit, | 625 | CARD_GFX_HEIGHT * card->suit, |
626 | STRIDE(BMPWIDTH_card_deck, BMPHEIGHT_card_deck), | 626 | STRIDE(SCREEN_MAIN, |
627 | BMPWIDTH_card_deck, BMPHEIGHT_card_deck), | ||
627 | x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT ); | 628 | x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT ); |
628 | } | 629 | } |
629 | else | 630 | else |
@@ -639,7 +640,8 @@ static void draw_empty_stack( int s, int x, int y, bool cursor ) | |||
639 | { | 640 | { |
640 | rb->lcd_bitmap_part( solitaire_suitsi, 0, | 641 | rb->lcd_bitmap_part( solitaire_suitsi, 0, |
641 | CARD_GFX_HEIGHT * s, | 642 | CARD_GFX_HEIGHT * s, |
642 | STRIDE(BMPWIDTH_solitaire_suitsi, BMPHEIGHT_solitaire_suitsi), | 643 | STRIDE( SCREEN_MAIN, |
644 | BMPWIDTH_solitaire_suitsi, BMPHEIGHT_solitaire_suitsi), | ||
643 | x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT ); | 645 | x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT ); |
644 | 646 | ||
645 | draw_card_ext( x, y, false, cursor ); | 647 | draw_card_ext( x, y, false, cursor ); |
diff --git a/apps/plugins/star.c b/apps/plugins/star.c index e40fa5a2dc..6079ba488e 100644 --- a/apps/plugins/star.c +++ b/apps/plugins/star.c | |||
@@ -729,7 +729,8 @@ static void star_display_board_info(int current_level) | |||
729 | 729 | ||
730 | rb->lcd_bitmap_part(star_tiles, 0, control == STAR_CONTROL_BALL ? | 730 | rb->lcd_bitmap_part(star_tiles, 0, control == STAR_CONTROL_BALL ? |
731 | BALL*TILE_HEIGHT : BLOCK*TILE_HEIGHT, | 731 | BALL*TILE_HEIGHT : BLOCK*TILE_HEIGHT, |
732 | STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), | 732 | STRIDE( SCREEN_MAIN, |
733 | BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), | ||
733 | STAR_OFFSET_X + (STAR_WIDTH-1) * TILE_WIDTH, | 734 | STAR_OFFSET_X + (STAR_WIDTH-1) * TILE_WIDTH, |
734 | tile_pos_y, TILE_WIDTH, TILE_HEIGHT); | 735 | tile_pos_y, TILE_WIDTH, TILE_HEIGHT); |
735 | 736 | ||
@@ -768,7 +769,8 @@ static int star_load_level(int current_level) | |||
768 | # define DRAW_TILE( a ) \ | 769 | # define DRAW_TILE( a ) \ |
769 | rb->lcd_bitmap_part( star_tiles, 0, \ | 770 | rb->lcd_bitmap_part( star_tiles, 0, \ |
770 | a*TILE_HEIGHT, \ | 771 | a*TILE_HEIGHT, \ |
771 | STRIDE( BMPWIDTH_star_tiles, \ | 772 | STRIDE( SCREEN_MAIN, \ |
773 | BMPWIDTH_star_tiles, \ | ||
772 | BMPHEIGHT_star_tiles), \ | 774 | BMPHEIGHT_star_tiles), \ |
773 | STAR_OFFSET_X + x * TILE_WIDTH, \ | 775 | STAR_OFFSET_X + x * TILE_WIDTH, \ |
774 | STAR_OFFSET_Y + y * TILE_HEIGHT, \ | 776 | STAR_OFFSET_Y + y * TILE_HEIGHT, \ |
@@ -820,10 +822,12 @@ static void star_animate_tile(int tile_no, int start_x, int start_y, | |||
820 | { | 822 | { |
821 | STAR_SLEEP | 823 | STAR_SLEEP |
822 | rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT, | 824 | rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT, |
823 | STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), | 825 | STRIDE( SCREEN_MAIN, |
826 | BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), | ||
824 | start_x, start_y, TILE_WIDTH, TILE_HEIGHT); | 827 | start_x, start_y, TILE_WIDTH, TILE_HEIGHT); |
825 | rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT, | 828 | rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT, |
826 | STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), | 829 | STRIDE( SCREEN_MAIN, |
830 | BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), | ||
827 | start_x + delta_x * i, start_y, TILE_WIDTH, TILE_HEIGHT); | 831 | start_x + delta_x * i, start_y, TILE_WIDTH, TILE_HEIGHT); |
828 | rb->lcd_update_rect(start_x + delta_x * i - (delta_x>0?1:0), | 832 | rb->lcd_update_rect(start_x + delta_x * i - (delta_x>0?1:0), |
829 | start_y, TILE_WIDTH + 1, TILE_HEIGHT); | 833 | start_y, TILE_WIDTH + 1, TILE_HEIGHT); |
@@ -835,10 +839,12 @@ static void star_animate_tile(int tile_no, int start_x, int start_y, | |||
835 | { | 839 | { |
836 | STAR_SLEEP | 840 | STAR_SLEEP |
837 | rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT, | 841 | rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT, |
838 | STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), | 842 | STRIDE( SCREEN_MAIN, |
843 | BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), | ||
839 | start_x, start_y, TILE_WIDTH, TILE_HEIGHT); | 844 | start_x, start_y, TILE_WIDTH, TILE_HEIGHT); |
840 | rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT, | 845 | rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT, |
841 | STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), | 846 | STRIDE( SCREEN_MAIN, |
847 | BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), | ||
842 | start_x, start_y + delta_y * i, TILE_WIDTH, TILE_HEIGHT); | 848 | start_x, start_y + delta_y * i, TILE_WIDTH, TILE_HEIGHT); |
843 | rb->lcd_update_rect(start_x, start_y + delta_y * i - (delta_y>0?1:0), | 849 | rb->lcd_update_rect(start_x, start_y + delta_y * i - (delta_y>0?1:0), |
844 | TILE_WIDTH, TILE_HEIGHT + 1); | 850 | TILE_WIDTH, TILE_HEIGHT + 1); |
diff --git a/apps/plugins/sudoku/sudoku.c b/apps/plugins/sudoku/sudoku.c index 3fac57b96a..02de4083dd 100644 --- a/apps/plugins/sudoku/sudoku.c +++ b/apps/plugins/sudoku/sudoku.c | |||
@@ -73,7 +73,7 @@ Example ".ss" file, and one with a saved state: | |||
73 | #include "pluginbitmaps/sudoku_start.h" | 73 | #include "pluginbitmaps/sudoku_start.h" |
74 | 74 | ||
75 | #define BITMAP_HEIGHT (BMPHEIGHT_sudoku_normal/10) | 75 | #define BITMAP_HEIGHT (BMPHEIGHT_sudoku_normal/10) |
76 | #define BITMAP_STRIDE STRIDE(BMPWIDTH_sudoku_normal, BMPHEIGHT_sudoku_normal) | 76 | #define BITMAP_STRIDE STRIDE(SCREEN_MAIN, BMPWIDTH_sudoku_normal, BMPHEIGHT_sudoku_normal) |
77 | 77 | ||
78 | #if (LCD_DEPTH>2) | 78 | #if (LCD_DEPTH>2) |
79 | #define BITMAP_WIDTH (BMPWIDTH_sudoku_normal/2) | 79 | #define BITMAP_WIDTH (BMPWIDTH_sudoku_normal/2) |
diff --git a/apps/plugins/superdom.c b/apps/plugins/superdom.c index 225de80f11..6c8f9b7f3f 100644 --- a/apps/plugins/superdom.c +++ b/apps/plugins/superdom.c | |||
@@ -62,7 +62,7 @@ char buf[255]; | |||
62 | /* These parameters define the piece image dimensions, Stride is the total width | 62 | /* These parameters define the piece image dimensions, Stride is the total width |
63 | * of the bitmap. | 63 | * of the bitmap. |
64 | */ | 64 | */ |
65 | #define ICON_STRIDE STRIDE(BMPWIDTH_superdom_boarditems, BMPHEIGHT_superdom_boarditems) | 65 | #define ICON_STRIDE STRIDE(SCREEN_MAIN, BMPWIDTH_superdom_boarditems, BMPHEIGHT_superdom_boarditems) |
66 | #define ICON_HEIGHT (BMPHEIGHT_superdom_boarditems/6) | 66 | #define ICON_HEIGHT (BMPHEIGHT_superdom_boarditems/6) |
67 | #define ICON_WIDTH (BMPWIDTH_superdom_boarditems/2) | 67 | #define ICON_WIDTH (BMPWIDTH_superdom_boarditems/2) |
68 | 68 | ||
diff --git a/apps/recorder/albumart.c b/apps/recorder/albumart.c index 4507923144..438c173211 100644 --- a/apps/recorder/albumart.c +++ b/apps/recorder/albumart.c | |||
@@ -351,7 +351,9 @@ void draw_album_art(struct gui_wps *gwps, int handle_id, bool clear) | |||
351 | if (!clear) | 351 | if (!clear) |
352 | { | 352 | { |
353 | /* Draw the bitmap */ | 353 | /* Draw the bitmap */ |
354 | gwps->display->bitmap_part((fb_data*)bmp->data, 0, 0, bmp->width, | 354 | gwps->display->bitmap_part((fb_data*)bmp->data, 0, 0, |
355 | STRIDE(gwps->display->screen_type, | ||
356 | bmp->width, bmp->height), | ||
355 | x, y, width, height); | 357 | x, y, width, height); |
356 | #ifdef HAVE_LCD_INVERT | 358 | #ifdef HAVE_LCD_INVERT |
357 | if (global_settings.invert) { | 359 | if (global_settings.invert) { |
diff --git a/apps/recorder/bmp.c b/apps/recorder/bmp.c index 9f83748a82..b67615b840 100644 --- a/apps/recorder/bmp.c +++ b/apps/recorder/bmp.c | |||
@@ -425,6 +425,7 @@ void output_row_8_native(uint32_t row, void * row_in, | |||
425 | #elif LCD_DEPTH == 16 | 425 | #elif LCD_DEPTH == 16 |
426 | #if defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE | 426 | #if defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE |
427 | /* M:Robe 500 */ | 427 | /* M:Robe 500 */ |
428 | (void) fb_width; | ||
428 | fb_data *dest = (fb_data *)ctx->bm->data + row; | 429 | fb_data *dest = (fb_data *)ctx->bm->data + row; |
429 | int delta = 127; | 430 | int delta = 127; |
430 | unsigned r, g, b; | 431 | unsigned r, g, b; |
diff --git a/apps/screen_access.h b/apps/screen_access.h index f0fed01722..0002e71991 100644 --- a/apps/screen_access.h +++ b/apps/screen_access.h | |||
@@ -26,13 +26,6 @@ | |||
26 | #include "buttonbar.h" | 26 | #include "buttonbar.h" |
27 | #include "backdrop.h" | 27 | #include "backdrop.h" |
28 | 28 | ||
29 | enum screen_type { | ||
30 | SCREEN_MAIN | ||
31 | #ifdef HAVE_REMOTE_LCD | ||
32 | ,SCREEN_REMOTE | ||
33 | #endif | ||
34 | }; | ||
35 | |||
36 | #if defined(HAVE_REMOTE_LCD) && !defined (ROCKBOX_HAS_LOGF) | 29 | #if defined(HAVE_REMOTE_LCD) && !defined (ROCKBOX_HAS_LOGF) |
37 | #define NB_SCREENS 2 | 30 | #define NB_SCREENS 2 |
38 | #else | 31 | #else |
diff --git a/firmware/drivers/lcd-16bit-vert.c b/firmware/drivers/lcd-16bit-vert.c index 396e6f88d8..887505766c 100644 --- a/firmware/drivers/lcd-16bit-vert.c +++ b/firmware/drivers/lcd-16bit-vert.c | |||
@@ -69,7 +69,7 @@ static struct viewport default_vp = | |||
69 | 69 | ||
70 | /* The Gigabeat target build requires access to the current fg_pattern | 70 | /* The Gigabeat target build requires access to the current fg_pattern |
71 | in lcd-meg-fx.c */ | 71 | in lcd-meg-fx.c */ |
72 | #if (!defined(TOSHIBA_GIGABEAT_F)&& !defined(TOSHIBA_GIGABEAT_S)) || defined(SIMULATOR) | 72 | #if defined(SIMULATOR) |
73 | static struct viewport* current_vp IDATA_ATTR = &default_vp; | 73 | static struct viewport* current_vp IDATA_ATTR = &default_vp; |
74 | #else | 74 | #else |
75 | struct viewport* current_vp IDATA_ATTR = &default_vp; | 75 | struct viewport* current_vp IDATA_ATTR = &default_vp; |
@@ -853,7 +853,7 @@ void ICODE_ATTR lcd_bitmap_part(const fb_data *src, int src_x, int src_y, | |||
853 | /* Draw a full native bitmap */ | 853 | /* Draw a full native bitmap */ |
854 | void lcd_bitmap(const fb_data *src, int x, int y, int width, int height) | 854 | void lcd_bitmap(const fb_data *src, int x, int y, int width, int height) |
855 | { | 855 | { |
856 | lcd_bitmap_part(src, 0, 0, STRIDE(width, height), x, y, width, height); | 856 | lcd_bitmap_part(src, 0, 0, STRIDE(SCREEN_MAIN, width, height), x, y, width, height); |
857 | } | 857 | } |
858 | 858 | ||
859 | #if !defined(TOSHIBA_GIGABEAT_F) && !defined(TOSHIBA_GIGABEAT_S) \ | 859 | #if !defined(TOSHIBA_GIGABEAT_F) && !defined(TOSHIBA_GIGABEAT_S) \ |
@@ -914,7 +914,7 @@ void lcd_bitmap_transparent(const fb_data *src, int x, int y, | |||
914 | int width, int height) | 914 | int width, int height) |
915 | { | 915 | { |
916 | lcd_bitmap_transparent_part(src, 0, 0, | 916 | lcd_bitmap_transparent_part(src, 0, 0, |
917 | STRIDE(width, height), x, y, width, height); | 917 | STRIDE(SCREEN_MAIN, width, height), x, y, width, height); |
918 | } | 918 | } |
919 | 919 | ||
920 | #include "lcd-bitmap-common.c" | 920 | #include "lcd-bitmap-common.c" |
diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h index 3d391d6685..3f3d8f875f 100644 --- a/firmware/export/lcd.h +++ b/firmware/export/lcd.h | |||
@@ -306,13 +306,25 @@ static inline unsigned lcd_color_to_native(unsigned color) | |||
306 | 306 | ||
307 | #endif /* HAVE_LCD_COLOR */ | 307 | #endif /* HAVE_LCD_COLOR */ |
308 | 308 | ||
309 | enum screen_type { | ||
310 | SCREEN_MAIN | ||
311 | #ifdef HAVE_REMOTE_LCD | ||
312 | ,SCREEN_REMOTE | ||
313 | #endif | ||
314 | }; | ||
315 | |||
309 | /* Frame buffer stride */ | 316 | /* Frame buffer stride */ |
317 | #define STRIDE_REMOTE(w, h) (w) | ||
318 | |||
310 | #if defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE | 319 | #if defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE |
311 | #define STRIDE(w, h) (h) | 320 | #define STRIDE_MAIN(w, h) (h) |
312 | #else | 321 | #else |
313 | #define STRIDE(w, h) (w) | 322 | #define STRIDE_MAIN(w, h) (w) |
314 | #endif | 323 | #endif |
315 | 324 | ||
325 | #define STRIDE(screen, w, h) (screen==SCREEN_MAIN?STRIDE_MAIN((w), \ | ||
326 | (h)):STRIDE_REMOTE((w),(h))) | ||
327 | |||
316 | /* Frame buffer dimensions */ | 328 | /* Frame buffer dimensions */ |
317 | #if LCD_DEPTH == 1 | 329 | #if LCD_DEPTH == 1 |
318 | #if LCD_PIXELFORMAT == HORIZONTAL_PACKING | 330 | #if LCD_PIXELFORMAT == HORIZONTAL_PACKING |