diff options
-rw-r--r-- | apps/plugins/puzzles/rockbox.c | 7 |
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 | } |