kopia lustrzana https://github.com/pimoroni/pimoroni-pico
added new meaasure_text() and measure_glyph() methods
rodzic
2820b62e8c
commit
e69115ea2e
|
@ -205,7 +205,6 @@ namespace pimoroni {
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t Badger2040::glyph(unsigned char c, int32_t x, int32_t y, float s, float a) {
|
int32_t Badger2040::glyph(unsigned char c, int32_t x, int32_t y, float s, float a) {
|
||||||
// if space character then return a width to move the caret by
|
|
||||||
const hershey_font_glyph_t *gd = glyph_data(c);
|
const hershey_font_glyph_t *gd = glyph_data(c);
|
||||||
|
|
||||||
// if glyph data not found (id too great) then skip
|
// if glyph data not found (id too great) then skip
|
||||||
|
@ -266,6 +265,26 @@ namespace pimoroni {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t Badger2040::measure_text(std::string message, float s) {
|
||||||
|
int32_t width = 0;
|
||||||
|
for(auto &c : message) {
|
||||||
|
width += measure_glyph(c, s);
|
||||||
|
}
|
||||||
|
return width;
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t Badger2040::measure_glyph(unsigned char c, float s) {
|
||||||
|
const hershey_font_glyph_t *gd = glyph_data(c);
|
||||||
|
|
||||||
|
// if glyph data not found (id too great) then skip
|
||||||
|
if(!gd) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return gd->width * s;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Badger2040::font(std::string name) {
|
void Badger2040::font(std::string name) {
|
||||||
// check that font exists and assign it
|
// check that font exists and assign it
|
||||||
if(fonts.find(name) != fonts.end()) {
|
if(fonts.find(name) != fonts.end()) {
|
||||||
|
|
|
@ -56,9 +56,13 @@ namespace pimoroni {
|
||||||
void image(const uint8_t *data);
|
void image(const uint8_t *data);
|
||||||
|
|
||||||
// text (fonts: sans, sans_bold, gothic, cursive_bold, cursive, serif_italic, serif, serif_bold)
|
// text (fonts: sans, sans_bold, gothic, cursive_bold, cursive, serif_italic, serif, serif_bold)
|
||||||
void text(std::string message, int32_t x, int32_t y, float s = 1.0f, float a = 0.0f);
|
|
||||||
const hershey_font_glyph_t* glyph_data(unsigned char c);
|
const hershey_font_glyph_t* glyph_data(unsigned char c);
|
||||||
int32_t glyph(unsigned char c, int32_t x, int32_t y, float s, float a = 0.0f);
|
|
||||||
|
void text(std::string message, int32_t x, int32_t y, float s = 1.0f, float a = 0.0f);
|
||||||
|
int32_t glyph(unsigned char c, int32_t x, int32_t y, float s = 1.0f, float a = 0.0f);
|
||||||
|
|
||||||
|
int32_t measure_text(std::string message, float s = 1.0f);
|
||||||
|
int32_t measure_glyph(unsigned char c, float s = 1.0f);
|
||||||
|
|
||||||
void debug_command(uint8_t command, size_t len, const uint8_t *data);
|
void debug_command(uint8_t command, size_t len, const uint8_t *data);
|
||||||
void dump_otp(uint8_t *otp_data);
|
void dump_otp(uint8_t *otp_data);
|
||||||
|
|
Ładowanie…
Reference in New Issue