Jonathan Gordon wrote:
>
> You are preaching to the choir here, The way people care about tiny
> amounts of RAM is rediculous, but that is what we do...

Rediculous indeed.  Btw, 1*SKIN_FONT_SIZE or 5*SKIN_FONT_SIZE
doesn't change the available buffer space reported by System->
Rockbox Info: it stays at 7.34MB (on an 8MB device!).

> does increasing it to 2 *SKIN_FONT_SIZE work?

No, 2 is not enough.  My skin works with 4 at the moment (20kB/22kB)
but some more tweaks and it will overflow again.

> The problem with the mono targets is that there is no backdrop buffer
> and a much smaller image buffer, the backdrop one is the important
> one, on the bigger targets when the backdrop is shared between all
> skins you have a couple hundred KB free for fonts and stuff. On mono
> there isnt this huge buffer and really the size hasn't been calibrated
> (for want of a better word).

I see.

> So, if 2 or 3 works I'd be interested in a atch which increases
> MAIN_BUFFER for mono targets as a stopgap solution.

Well, 3 is not enough but here's a patch anyway:

--- a/apps/gui/skin_engine/skin_buffer.c
+++ b/apps/gui/skin_engine/skin_buffer.c
@@ -56,7 +56,16 @@


 #ifdef HAVE_LCD_BITMAP
+
+#if LCD_BACKDROP_BYTES == 0
+/* no backdrop buffers - give some extra room for fonts */
+#define MAIN_BUFFER_EXTRA (4 * SKIN_FONT_SIZE)
+#else
+#define MAIN_BUFFER_EXTRA 0
+#endif
+
 #define MAIN_BUFFER ((2*LCD_HEIGHT*LCD_WIDTH*LCD_DEPTH/8) \
+                    + MAIN_BUFFER_EXTRA \
                     + (SKINNABLE_SCREENS_COUNT * LCD_BACKDROP_BYTES))

 #if (NB_SCREENS > 1)

Ciao, ET.

Reply via email to