summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/drivers/lcd-bitmap-common.c8
-rw-r--r--firmware/export/lcd-remote.h1
-rw-r--r--firmware/export/lcd.h1
3 files changed, 10 insertions, 0 deletions
diff --git a/firmware/drivers/lcd-bitmap-common.c b/firmware/drivers/lcd-bitmap-common.c
index f122e336d7..b0be687ed2 100644
--- a/firmware/drivers/lcd-bitmap-common.c
+++ b/firmware/drivers/lcd-bitmap-common.c
@@ -81,6 +81,14 @@ static void lcd_gradient_rect(int x1, int x2, int y, unsigned h,
}
#endif
+void LCDFN(set_framebuffer)(FBFN(data) *fb)
+{
+ if (fb)
+ LCDFN(framebuffer) = fb;
+ else
+ LCDFN(framebuffer) = &LCDFN(static_framebuffer)[0][0];
+}
+
/*
* draws the borders of the current viewport
**/
diff --git a/firmware/export/lcd-remote.h b/firmware/export/lcd-remote.h
index 0f5f7ed6b7..1bb19a5cfa 100644
--- a/firmware/export/lcd-remote.h
+++ b/firmware/export/lcd-remote.h
@@ -132,6 +132,7 @@ void lcd_remote_init(void);
void lcd_remote_write_command(int cmd);
void lcd_remote_write_command_ex(int cmd, int data);
void lcd_remote_write_data(const fb_remote_data *data, int count);
+extern void lcd_remote_set_framebuffer(fb_remote_data *fb);
extern void lcd_remote_bitmap_part(const fb_remote_data *src, int src_x,
int src_y, int stride, int x, int y,
diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h
index 052b368d9b..7e0e979821 100644
--- a/firmware/export/lcd.h
+++ b/firmware/export/lcd.h
@@ -529,6 +529,7 @@ extern void lcd_bitmap_part(const fb_data *src, int src_x, int src_y,
int stride, int x, int y, int width, int height);
extern void lcd_bitmap(const fb_data *src, int x, int y, int width,
int height);
+extern void lcd_set_framebuffer(fb_data *fb);
extern void lcd_scroll_step(int pixels);