mirror of
https://github.com/DarkFlippers/unleashed-firmware
synced 2024-12-26 12:43:08 +00:00
33 lines
No EOL
850 B
C
33 lines
No EOL
850 B
C
#include "canvas_extensions.h"
|
|
|
|
void canvas_draw_str_ex(
|
|
Canvas* canvas,
|
|
uint8_t x,
|
|
uint8_t y,
|
|
const char* text,
|
|
size_t text_length,
|
|
const FONT_INFO* const font) {
|
|
const char* p_ch = text;
|
|
char ch;
|
|
size_t i = 0;
|
|
uint8_t offset_x = x;
|
|
uint8_t char_width = font->charInfo[0].width;
|
|
uint8_t offset_x_inc = char_width + font->spacePixels;
|
|
while(i < text_length && (ch = *p_ch) != 0) {
|
|
if(ch >= font->startChar && ch <= font->endChar) {
|
|
uint8_t char_index = ch - font->startChar;
|
|
canvas_draw_xbm(
|
|
canvas,
|
|
offset_x,
|
|
y,
|
|
char_width,
|
|
font->height,
|
|
&font->data[font->charInfo[char_index].offset]);
|
|
}
|
|
|
|
offset_x += offset_x_inc;
|
|
|
|
p_ch++;
|
|
i++;
|
|
}
|
|
} |