1
0
Fork 0
forked from len0rd/rockbox

puzzles: save some bytes

This should cut just enough size off the binary to let Net still compile
for the c200v2. This is probably close to the last time I'll be able to do
this; I'm already resorting to dirty hacks like writing super terse error
messages.

Change-Id: I43344b9a601696d7ca56fc02af4a611fd9d1a150
This commit is contained in:
Franklin Wei 2018-04-17 22:13:31 -04:00
parent e84fc26fb8
commit 22823e2f78

View file

@ -532,34 +532,7 @@ static void rb_draw_text(void *handle, int x, int y, int fonttype,
int fontsize, int align, int color, const char *text)
{
(void) fontsize;
if(!zoom_enabled)
{
LOGF("rb_draw_text(%d %d %s)", x, y, text);
offset_coords(&x, &y);
rb_setfont(fonttype, fontsize);
int w, h;
rb->lcd_getstringsize(text, &w, &h);
if(align & ALIGN_VNORMAL)
y -= h;
else if(align & ALIGN_VCENTRE)
y -= h / 2;
if(align & ALIGN_HCENTRE)
x -= w / 2;
else if(align & ALIGN_HRIGHT)
x -= w;
rb_color(color);
rb->lcd_set_drawmode(DRMODE_FG);
rb->lcd_putsxy(x, y, text);
rb->lcd_set_drawmode(DRMODE_SOLID);
}
else
{
rb_color(color);
rb_setfont(fonttype, fontsize); /* size will be clamped if too large */
@ -576,6 +549,18 @@ static void rb_draw_text(void *handle, int x, int y, int fonttype,
else if(align & ALIGN_HRIGHT)
x -= w;
if(!zoom_enabled)
{
LOGF("rb_draw_text(%d %d %s)", x, y, text);
offset_coords(&x, &y);
rb->lcd_set_drawmode(DRMODE_FG);
rb->lcd_putsxy(x, y, text);
rb->lcd_set_drawmode(DRMODE_SOLID);
}
else
{
/* we need to access the font bitmap directly */
struct font *pf = rb->font_get(cur_font);
@ -606,17 +591,16 @@ static void rb_draw_text(void *handle, int x, int y, int fonttype,
static void rb_draw_rect(void *handle, int x, int y, int w, int h, int color)
{
rb_color(color);
if(!zoom_enabled)
{
LOGF("rb_draw_rect(%d, %d, %d, %d, %d)", x, y, w, h, color);
rb_color(color);
offset_coords(&x, &y);
rb->lcd_fillrect(x, y, w, h);
}
else
{
/* TODO: clipping */
rb_color(color);
for(int i = y; i < y + h; ++i)
{
zoom_hline(x, x + w, i);
@ -748,10 +732,12 @@ static void draw_antialiased_line(fb_data *fb, int w, int h, int x0, int y0, int
static void rb_draw_line(void *handle, int x1, int y1, int x2, int y2,
int color)
{
rb_color(color);
if(!zoom_enabled)
{
LOGF("rb_draw_line(%d, %d, %d, %d, %d)", x1, y1, x2, y2, color);
rb_color(color);
#if defined(FOR_REAL) && defined(DEBUG_MENU)
if(debug_settings.no_aa)
{
offset_coords(&x1, &y1);
@ -759,13 +745,13 @@ static void rb_draw_line(void *handle, int x1, int y1, int x2, int y2,
rb->lcd_drawline(x1, y1, x2, y2);
}
else
#endif
draw_antialiased_line(rb->lcd_framebuffer, LCD_WIDTH, LCD_HEIGHT, x1, y1, x2, y2);
}
else
{
/* draw_antialiased_line uses rb->lcd_get_foreground() to get
* the color */
rb_color(color);
draw_antialiased_line(zoom_fb, zoom_w, zoom_h, x1, y1, x2, y2);
}
@ -1917,7 +1903,7 @@ static void zoom(void)
zoom_fb = smalloc(zoom_w * zoom_h * sizeof(fb_data));
if(!zoom_fb)
{
rb->splashf(HZ * 2, "Not enough memory to allocate %d KB framebuffer!", zoom_w * zoom_h * sizeof(fb_data) / 1024);
rb->splash(HZ, "OOM");
return;
}
@ -2270,7 +2256,6 @@ static bool config_menu(void)
if(!config)
{
rb->splash(HZ, "Nothing to configure.");
goto done;
}
@ -3181,7 +3166,7 @@ static bool load_game(void)
/* success */
return true;
}
rb->splashf(HZ, "Failed loading save for %s!", game);
rb->splash(HZ, "Load failed.");
/* clean up, even on failure */
rb->close(fd);