From b3edb1bdbaf36e96277fb1300ca91e680d3c8072 Mon Sep 17 00:00:00 2001 From: Karl Kurbjun Date: Tue, 1 Sep 2009 02:44:11 +0000 Subject: Star: Add support for Vertical strides. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22584 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/star.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/apps/plugins/star.c b/apps/plugins/star.c index 663c9dfca3..e40fa5a2dc 100644 --- a/apps/plugins/star.c +++ b/apps/plugins/star.c @@ -728,7 +728,8 @@ static void star_display_board_info(int current_level) label_pos_y, "C:"); rb->lcd_bitmap_part(star_tiles, 0, control == STAR_CONTROL_BALL ? - BALL*TILE_HEIGHT : BLOCK*TILE_HEIGHT, TILE_WIDTH, + BALL*TILE_HEIGHT : BLOCK*TILE_HEIGHT, + STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), STAR_OFFSET_X + (STAR_WIDTH-1) * TILE_WIDTH, tile_pos_y, TILE_WIDTH, TILE_HEIGHT); @@ -764,12 +765,15 @@ static int star_load_level(int current_level) board[y][x] = *ptr_tab; switch (*ptr_tab) { -# define DRAW_TILE( a ) \ - rb->lcd_bitmap_part( star_tiles, 0, \ - a*TILE_HEIGHT, TILE_WIDTH, \ - STAR_OFFSET_X + x * TILE_WIDTH, \ - STAR_OFFSET_Y + y * TILE_HEIGHT, \ - TILE_WIDTH, TILE_HEIGHT); +# define DRAW_TILE( a ) \ + rb->lcd_bitmap_part( star_tiles, 0, \ + a*TILE_HEIGHT, \ + STRIDE( BMPWIDTH_star_tiles, \ + BMPHEIGHT_star_tiles), \ + STAR_OFFSET_X + x * TILE_WIDTH, \ + STAR_OFFSET_Y + y * TILE_HEIGHT, \ + TILE_WIDTH, TILE_HEIGHT); + case STAR_VOID: DRAW_TILE( SPACE ); break; @@ -815,9 +819,11 @@ static void star_animate_tile(int tile_no, int start_x, int start_y, for (i = 1 ; i <= TILE_WIDTH ; i++) { STAR_SLEEP - rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT, TILE_WIDTH, + rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT, + STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), start_x, start_y, TILE_WIDTH, TILE_HEIGHT); - rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT, TILE_WIDTH, + rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT, + STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), start_x + delta_x * i, start_y, TILE_WIDTH, TILE_HEIGHT); rb->lcd_update_rect(start_x + delta_x * i - (delta_x>0?1:0), start_y, TILE_WIDTH + 1, TILE_HEIGHT); @@ -828,9 +834,11 @@ static void star_animate_tile(int tile_no, int start_x, int start_y, for (i = 1 ; i <= TILE_HEIGHT ; i++) { STAR_SLEEP - rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT, TILE_WIDTH, + rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT, + STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), start_x, start_y, TILE_WIDTH, TILE_HEIGHT); - rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT, TILE_WIDTH, + rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT, + STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), start_x, start_y + delta_y * i, TILE_WIDTH, TILE_HEIGHT); rb->lcd_update_rect(start_x, start_y + delta_y * i - (delta_y>0?1:0), TILE_WIDTH, TILE_HEIGHT + 1); -- cgit v1.2.3