diff options
Diffstat (limited to 'firmware/target')
-rw-r--r-- | firmware/target/hosted/agptek/lcd-agptek.c | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/firmware/target/hosted/agptek/lcd-agptek.c b/firmware/target/hosted/agptek/lcd-agptek.c index 4b3148da03..9cd4daea5d 100644 --- a/firmware/target/hosted/agptek/lcd-agptek.c +++ b/firmware/target/hosted/agptek/lcd-agptek.c @@ -114,27 +114,33 @@ extern void lcd_copy_buffer_rect(fb_data *dst, const fb_data *src, void lcd_update(void) { - /* Copy the Rockbox framebuffer to the second framebuffer */ - lcd_copy_buffer_rect(LCD_FRAMEBUF_ADDR(0, 0), FBADDR(0,0), - LCD_WIDTH*LCD_HEIGHT, 1); - redraw(); + if (lcd_active()) + { + /* Copy the Rockbox framebuffer to the second framebuffer */ + lcd_copy_buffer_rect(LCD_FRAMEBUF_ADDR(0, 0), FBADDR(0,0), + LCD_WIDTH*LCD_HEIGHT, 1); + redraw(); + } } void lcd_update_rect(int x, int y, int width, int height) { - fb_data *dst = LCD_FRAMEBUF_ADDR(x, y); - fb_data * src = FBADDR(x,y); - - /* Copy part of the Rockbox framebuffer to the second framebuffer */ - if (width < LCD_WIDTH) - { - /* Not full width - do line-by-line */ - lcd_copy_buffer_rect(dst, src, width, height); - } - else + if (lcd_active()) { - /* Full width - copy as one line */ - lcd_copy_buffer_rect(dst, src, LCD_WIDTH*height, 1); + fb_data *dst = LCD_FRAMEBUF_ADDR(x, y); + fb_data * src = FBADDR(x,y); + + /* Copy part of the Rockbox framebuffer to the second framebuffer */ + if (width < LCD_WIDTH) + { + /* Not full width - do line-by-line */ + lcd_copy_buffer_rect(dst, src, width, height); + } + else + { + /* Full width - copy as one line */ + lcd_copy_buffer_rect(dst, src, LCD_WIDTH*height, 1); + } + redraw(); } - redraw(); } |