summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugins/puzzles/rockbox.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/apps/plugins/puzzles/rockbox.c b/apps/plugins/puzzles/rockbox.c
index 454ccfcaea..44df35027a 100644
--- a/apps/plugins/puzzles/rockbox.c
+++ b/apps/plugins/puzzles/rockbox.c
@@ -1196,14 +1196,17 @@ static void rb_blitter_save(void *handle, blitter *bl, int x, int y)
1196 if(bl->bmp.data) 1196 if(bl->bmp.data)
1197 { 1197 {
1198 int w = bl->bmp.width, h = bl->bmp.height; 1198 int w = bl->bmp.width, h = bl->bmp.height;
1199 int screen_w = zoom_enabled ? zoom_w : LCD_WIDTH;
1200
1199 trim_rect(&x, &y, &w, &h); 1201 trim_rect(&x, &y, &w, &h);
1202
1200 fb_data *fb = zoom_enabled ? zoom_fb : rb->lcd_framebuffer; 1203 fb_data *fb = zoom_enabled ? zoom_fb : rb->lcd_framebuffer;
1201 LOGF("rb_blitter_save(%d, %d, %d, %d)", x, y, w, h); 1204 LOGF("rb_blitter_save(%d, %d, %d, %d)", x, y, w, h);
1202 for(int i = 0; i < h; ++i) 1205 for(int i = 0; i < h; ++i)
1203 { 1206 {
1204 /* copy line-by-line */ 1207 /* copy line-by-line */
1205 rb->memcpy(bl->bmp.data + sizeof(fb_data) * i * w, 1208 rb->memcpy(bl->bmp.data + sizeof(fb_data) * i * w,
1206 fb + (y + i) * LCD_WIDTH + x, 1209 fb + (y + i) * screen_w + x,
1207 w * sizeof(fb_data)); 1210 w * sizeof(fb_data));
1208 } 1211 }
1209 bl->x = x; 1212 bl->x = x;
@@ -1236,7 +1239,7 @@ static void rb_blitter_load(void *handle, blitter *bl, int x, int y)
1236 { 1239 {
1237 for(int i = 0; i < h; ++i) 1240 for(int i = 0; i < h; ++i)
1238 { 1241 {
1239 rb->memcpy(zoom_fb + i * zoom_w + x, 1242 rb->memcpy(zoom_fb + (y + i) * zoom_w + x,
1240 bl->bmp.data + sizeof(fb_data) * i * w, 1243 bl->bmp.data + sizeof(fb_data) * i * w,
1241 w * sizeof(fb_data)); 1244 w * sizeof(fb_data));
1242 } 1245 }