diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2012-02-28 22:26:32 +1100 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2012-02-28 23:03:04 +1100 |
commit | 2c71aa9feb0268da7d993feddbbe4db591fcd3ba (patch) | |
tree | 29b3c1480abca46813ef2dc3bb8f0862b596fe34 /firmware/drivers | |
parent | 13f98df5ed6b8183d972f85a1bfe55cf02194941 (diff) | |
download | rockbox-2c71aa9feb0268da7d993feddbbe4db591fcd3ba.tar.gz rockbox-2c71aa9feb0268da7d993feddbbe4db591fcd3ba.zip |
lcd/skin_engine: Add the ability to draw onto the backdrop layer
The framebuffer the lcd driver uses can now be changed on the fly
which means that regular lcd_* drawing functions can draw onto the
"backdrop" buffer. The skin engine can use this to create layered
effects.
Add the tag %VB to a viewport to draw that viewport onto the
backdrop layer. If you want to draw an image onto the backdrop
framebuffer use %x(backdrop filename) instead of %X() inside
a viewport with %VB.
Change-Id: I741498e2af6d4f2d78932cabe8942317893e7cfc
Diffstat (limited to 'firmware/drivers')
-rw-r--r-- | firmware/drivers/lcd-bitmap-common.c | 8 |
1 files changed, 8 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, | |||
81 | } | 81 | } |
82 | #endif | 82 | #endif |
83 | 83 | ||
84 | void LCDFN(set_framebuffer)(FBFN(data) *fb) | ||
85 | { | ||
86 | if (fb) | ||
87 | LCDFN(framebuffer) = fb; | ||
88 | else | ||
89 | LCDFN(framebuffer) = &LCDFN(static_framebuffer)[0][0]; | ||
90 | } | ||
91 | |||
84 | /* | 92 | /* |
85 | * draws the borders of the current viewport | 93 | * draws the borders of the current viewport |
86 | **/ | 94 | **/ |