16,6 → 16,9 |
gfx_data.textsize = 1; |
gfx_data.textcolor = gfx_data.textbgcolor = 0xFFFF; |
gfx_data.wrap = 1; |
|
memset(gfx_data.lcd_buffer, 0, GFX_LCD_BUFFER_SIZE); |
memset(gfx_data.buffer, 0, GFX_STRING_BUFFER_SIZE); |
} |
|
int GFX_Abs(int i) { |
426,11 → 429,11 |
} |
|
void GFX_write(unsigned char c) { |
if (c == '\n') { |
if (c == '\n' || c == '\r') { |
gfx_data.cursor_y += gfx_data.textsize * 8; |
gfx_data.cursor_x = 0; |
} else if (c == '\r') { |
// skip em |
// } else if (c == '\r') { |
// // skip em |
} else { |
GFX_drawChar(gfx_data.cursor_x, gfx_data.cursor_y, c, gfx_data.textcolor, gfx_data.textbgcolor, gfx_data.textsize); |
gfx_data.cursor_x += gfx_data.textsize * 6; |
443,16 → 446,62 |
|
void GFX_writeString(const rom char *fmt, ...) { |
unsigned char i, len; |
// Parse and create string |
va_list args; |
va_start(args, fmt); |
vsprintf((char *) gfx_data.buffer, fmt, args); |
va_end(args); |
len = strlen((char *) gfx_data.buffer); |
|
// Make sure string to insert fits in buffer, truncate if necessary |
if (len > GFX_STRING_BUFFER_SIZE) |
len = GFX_STRING_BUFFER_SIZE; |
|
// Print buffer to string |
for (i = 0; i < len; i++) { |
GFX_write(gfx_data.buffer[i]); |
} |
} |
|
void GFX_appendString(const rom char *fmt, ...) { |
unsigned char i, len; |
|
// Parse and create string |
va_list args; |
va_start(args, fmt); |
vsprintf((char *) gfx_data.buffer, fmt, args); |
va_end(args); |
|
// Make sure string to insert fits in buffer, truncate if necessary |
len = strlen((char *) gfx_data.buffer); |
|
if (len == 1) { // This will only occur on "\n" |
// Do nothing? |
return; |
} |
|
if (len > GFX_STRING_BUFFER_SIZE) |
len = GFX_STRING_BUFFER_SIZE; |
|
// Omit the newline if string fill entire line |
if (((len - 1)%(GFX_width() / 6)) == 0) { // 16 or 10 |
len -= 1; |
} |
|
// Shift everything right and insert string at beginning |
for (i = 127; i > len - 1; i--) { |
gfx_data.lcd_buffer[i] = gfx_data.lcd_buffer[i - len]; |
} |
memcpy(gfx_data.lcd_buffer, gfx_data.buffer, len); |
|
// Print full buffer to screen |
GFX_clearScreen(); |
GFX_setCursor(0,0); |
for (i = 0; i < GFX_LCD_BUFFER_SIZE-1; i++) { |
GFX_write(gfx_data.lcd_buffer[i]); |
} |
} |
|
void GFX_setCursor(int x, int y) { |
gfx_data.cursor_x = x; |
gfx_data.cursor_y = y; |