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.