Skip to content

Commit 7406440

Browse files
authored
Merge pull request #779 from pimoroni/picographics/fonts
PicoGraphics: Fixed-width bitmap font support.
2 parents c8d3b6b + fba7b53 commit 7406440

File tree

6 files changed

+141
-133
lines changed

6 files changed

+141
-133
lines changed

libraries/bitmap_fonts/bitmap_fonts.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
#include "bitmap_fonts.hpp"
22

33
namespace bitmap {
4-
int32_t measure_character(const font_t *font, const char c, const uint8_t scale, unicode_sorta::codepage_t codepage) {
4+
int32_t measure_character(const font_t *font, const char c, const uint8_t scale, unicode_sorta::codepage_t codepage, bool fixed_width) {
55
if(c < 32 || c > 127 + 64) { // + 64 char remappings defined in unicode_sorta.hpp
66
return 0;
77
}
88

9+
if(fixed_width) {
10+
return font->max_width * scale;
11+
}
12+
913
uint8_t char_index = c;
1014

1115
if(char_index > 127) {
@@ -21,7 +25,7 @@ namespace bitmap {
2125
return font->widths[char_index] * scale;
2226
}
2327

24-
int32_t measure_text(const font_t *font, const std::string_view &t, const uint8_t scale, const uint8_t letter_spacing) {
28+
int32_t measure_text(const font_t *font, const std::string_view &t, const uint8_t scale, const uint8_t letter_spacing, bool fixed_width) {
2529
int32_t text_width = 0;
2630
unicode_sorta::codepage_t codepage = unicode_sorta::PAGE_195;
2731
for(auto c : t) {
@@ -31,7 +35,7 @@ namespace bitmap {
3135
} else if (c == unicode_sorta::PAGE_195_START) {
3236
continue;
3337
}
34-
text_width += measure_character(font, c, scale, codepage);
38+
text_width += measure_character(font, c, scale, codepage, fixed_width);
3539
text_width += letter_spacing * scale;
3640
codepage = unicode_sorta::PAGE_195; // Reset back to default
3741
}
@@ -119,7 +123,7 @@ namespace bitmap {
119123
}
120124
}
121125

122-
void text(const font_t *font, rect_func rectangle, const std::string_view &t, const int32_t x, const int32_t y, const int32_t wrap, const uint8_t scale, const uint8_t letter_spacing) {
126+
void text(const font_t *font, rect_func rectangle, const std::string_view &t, const int32_t x, const int32_t y, const int32_t wrap, const uint8_t scale, const uint8_t letter_spacing, bool fixed_width) {
123127
uint32_t co = 0, lo = 0; // character and line (if wrapping) offset
124128
unicode_sorta::codepage_t codepage = unicode_sorta::PAGE_195;
125129

@@ -148,7 +152,7 @@ namespace bitmap {
148152
} else if (t[j] == unicode_sorta::PAGE_195_START) {
149153
continue;
150154
}
151-
word_width += measure_character(font, t[j], scale, codepage);
155+
word_width += measure_character(font, t[j], scale, codepage, fixed_width);
152156
codepage = unicode_sorta::PAGE_195;
153157
}
154158

@@ -172,7 +176,7 @@ namespace bitmap {
172176
co = 0;
173177
} else {
174178
character(font, rectangle, t[j], x + co, y + lo, scale, codepage);
175-
co += measure_character(font, t[j], scale, codepage);
179+
co += measure_character(font, t[j], scale, codepage, fixed_width);
176180
co += letter_spacing * scale;
177181
}
178182
codepage = unicode_sorta::PAGE_195;

libraries/bitmap_fonts/bitmap_fonts.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ namespace bitmap {
1919

2020
typedef std::function<void(int32_t x, int32_t y, int32_t w, int32_t h)> rect_func;
2121

22-
int32_t measure_character(const font_t *font, const char c, const uint8_t scale, unicode_sorta::codepage_t codepage = unicode_sorta::PAGE_195);
23-
int32_t measure_text(const font_t *font, const std::string_view &t, const uint8_t scale = 2, const uint8_t letter_spacing = 1);
22+
int32_t measure_character(const font_t *font, const char c, const uint8_t scale, unicode_sorta::codepage_t codepage = unicode_sorta::PAGE_195, bool fixed_width = false);
23+
int32_t measure_text(const font_t *font, const std::string_view &t, const uint8_t scale = 2, const uint8_t letter_spacing = 1, bool fixed_width = false);
2424

2525
void character(const font_t *font, rect_func rectangle, const char c, const int32_t x, const int32_t y, const uint8_t scale = 2, unicode_sorta::codepage_t codepage = unicode_sorta::PAGE_195);
26-
void text(const font_t *font, rect_func rectangle, const std::string_view &t, const int32_t x, const int32_t y, const int32_t wrap, const uint8_t scale = 2, const uint8_t letter_spacing = 1);
26+
void text(const font_t *font, rect_func rectangle, const std::string_view &t, const int32_t x, const int32_t y, const int32_t wrap, const uint8_t scale = 2, const uint8_t letter_spacing = 1, bool fixed_width = false);
2727
}

libraries/bitmap_fonts/font8_data.hpp

Lines changed: 114 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
const bitmap::font_t font8 {
66
.height = 8,
7-
.max_width = 6,
7+
.max_width = 5,
88
.widths = {
99
3, 1, 3, 5, 4, 4, 4, 1, 3, 3, 3, 3, 2, 3, 2, 4,
1010
4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2, 3, 3, 3, 4,
@@ -17,123 +17,123 @@ const bitmap::font_t font8 {
1717
5, 4, 4, 5, 4, 4, 4, 4, 3
1818
},
1919
.data = {
20-
0x00,0x00,0x00,0x00,0x00,0x00, //
21-
0x5f,0x00,0x00,0x00,0x00,0x00, // !
22-
0x03,0x00,0x03,0x00,0x00,0x00, // "
23-
0x28,0x7c,0x28,0x7c,0x28,0x00, // #
24-
0x24,0x7a,0x2f,0x12,0x00,0x00, // $
25-
0x66,0x10,0x08,0x66,0x00,0x00, // %
26-
0x36,0x49,0x49,0x7c,0x00,0x00, // &
27-
0x03,0x00,0x00,0x00,0x00,0x00, // '
28-
0x1c,0x22,0x41,0x00,0x00,0x00, // (
29-
0x41,0x22,0x1c,0x00,0x00,0x00, // )
30-
0x54,0x38,0x54,0x00,0x00,0x00, // *
31-
0x10,0x38,0x10,0x00,0x00,0x00, // +
32-
0x80,0x60,0x00,0x00,0x00,0x00, // ,
33-
0x10,0x10,0x10,0x00,0x00,0x00, // -
34-
0x60,0x60,0x00,0x00,0x00,0x00, // .
35-
0x60,0x18,0x06,0x01,0x00,0x00, // /
36-
0x3e,0x41,0x41,0x3e,0x00,0x00, // 0
37-
0x42,0x7f,0x40,0x00,0x00,0x00, // 1
38-
0x62,0x51,0x49,0x46,0x00,0x00, // 2
39-
0x21,0x49,0x4d,0x33,0x00,0x00, // 3
40-
0x18,0x16,0x11,0x7f,0x00,0x00, // 4
41-
0x4f,0x49,0x49,0x31,0x00,0x00, // 5
42-
0x3c,0x4a,0x49,0x30,0x00,0x00, // 6
43-
0x01,0x61,0x19,0x07,0x00,0x00, // 7
44-
0x36,0x49,0x49,0x36,0x00,0x00, // 8
45-
0x06,0x49,0x29,0x1e,0x00,0x00, // 9
46-
0x33,0x00,0x00,0x00,0x00,0x00, // :
47-
0x80,0x6c,0x00,0x00,0x00,0x00, // ;
48-
0x10,0x28,0x44,0x00,0x00,0x00, // <
49-
0x28,0x28,0x28,0x00,0x00,0x00, // =
50-
0x44,0x28,0x10,0x00,0x00,0x00, // >
51-
0x02,0x51,0x09,0x06,0x00,0x00, // ?
52-
0x3e,0x49,0x55,0x5e,0x00,0x00, // @
53-
0x7e,0x09,0x09,0x7e,0x00,0x00, // A
54-
0x7f,0x49,0x49,0x36,0x00,0x00, // B
55-
0x3e,0x41,0x41,0x22,0x00,0x00, // C
56-
0x7f,0x41,0x41,0x3e,0x00,0x00, // D
57-
0x7f,0x49,0x49,0x41,0x00,0x00, // E
58-
0x7f,0x09,0x09,0x01,0x00,0x00, // F
59-
0x3e,0x41,0x49,0x79,0x00,0x00, // G
60-
0x7f,0x08,0x08,0x7f,0x00,0x00, // H
61-
0x41,0x7f,0x41,0x00,0x00,0x00, // I
62-
0x30,0x40,0x40,0x3f,0x00,0x00, // J
63-
0x7f,0x08,0x14,0x63,0x00,0x00, // K
64-
0x7f,0x40,0x40,0x40,0x00,0x00, // L
65-
0x7f,0x02,0x04,0x02,0x7f,0x00, // M
66-
0x7f,0x02,0x04,0x7f,0x00,0x00, // N
67-
0x3e,0x41,0x41,0x3e,0x00,0x00, // O
68-
0x7f,0x09,0x09,0x06,0x00,0x00, // P
69-
0x3e,0x41,0x21,0x5e,0x00,0x00, // Q
70-
0x7f,0x09,0x19,0x66,0x00,0x00, // R
71-
0x46,0x49,0x49,0x31,0x00,0x00, // S
72-
0x01,0x01,0x7f,0x01,0x01,0x00, // T
73-
0x3f,0x40,0x40,0x3f,0x00,0x00, // U
74-
0x7f,0x40,0x20,0x1f,0x00,0x00, // V
75-
0x3f,0x40,0x20,0x40,0x3f,0x00, // W
76-
0x77,0x08,0x08,0x77,0x00,0x00, // X
77-
0x47,0x48,0x48,0x3f,0x00,0x00, // Y
78-
0x71,0x49,0x45,0x43,0x00,0x00, // Z
79-
0x7f,0x41,0x00,0x00,0x00,0x00, // [
80-
0x01,0x06,0x18,0x60,0x00,0x00, // "\"
81-
0x41,0x7f,0x00,0x00,0x00,0x00, // ]
82-
0x04,0x02,0x04,0x00,0x00,0x00, // ^
83-
0x40,0x40,0x40,0x00,0x00,0x00, // _
84-
0x01,0x01,0x00,0x00,0x00,0x00, // `
85-
0x20,0x54,0x54,0x78,0x00,0x00, // a
86-
0x7f,0x44,0x44,0x38,0x00,0x00, // b
87-
0x38,0x44,0x44,0x28,0x00,0x00, // c
88-
0x38,0x44,0x44,0x7f,0x00,0x00, // d
89-
0x38,0x54,0x54,0x58,0x00,0x00, // e
90-
0x7e,0x09,0x09,0x02,0x00,0x00, // f
91-
0x18,0xa4,0xa4,0x7c,0x00,0x00, // g
92-
0x7f,0x04,0x04,0x78,0x00,0x00, // h
93-
0x04,0x7d,0x40,0x00,0x00,0x00, // i
94-
0x60,0x80,0x80,0x7d,0x00,0x00, // j
95-
0x7f,0x10,0x28,0x44,0x00,0x00, // k
96-
0x01,0x7f,0x40,0x00,0x00,0x00, // l
97-
0x7c,0x04,0x78,0x04,0x78,0x00, // m
98-
0x7c,0x04,0x04,0x78,0x00,0x00, // n
99-
0x38,0x44,0x44,0x38,0x00,0x00, // o
100-
0xfc,0x24,0x24,0x18,0x00,0x00, // p
101-
0x18,0x24,0x24,0xfc,0x00,0x00, // q
102-
0x7c,0x08,0x04,0x04,0x00,0x00, // r
103-
0x48,0x54,0x54,0x24,0x00,0x00, // s
104-
0x3e,0x44,0x44,0x20,0x00,0x00, // t
105-
0x3c,0x40,0x40,0x7c,0x00,0x00, // u
106-
0x7c,0x40,0x20,0x1c,0x00,0x00, // v
107-
0x3c,0x40,0x20,0x40,0x3c,0x00, // w
108-
0x6c,0x10,0x10,0x6c,0x00,0x00, // x
109-
0x1c,0xa0,0xa0,0x7c,0x00,0x00, // y
110-
0x64,0x54,0x4c,0x00,0x00,0x00, // z
111-
0x08,0x3e,0x41,0x00,0x00,0x00, // {
112-
0x7f,0x00,0x00,0x00,0x00,0x00, // |
113-
0x41,0x3e,0x08,0x00,0x00,0x00, // }
114-
0x08,0x04,0x08,0x04,0x00,0x00, // ~
115-
0x00,0x00,0x00,0x00,0x00,0x00,
20+
0x00,0x00,0x00,0x00,0x00, //
21+
0x5f,0x00,0x00,0x00,0x00, // !
22+
0x03,0x00,0x03,0x00,0x00, // "
23+
0x28,0x7c,0x28,0x7c,0x28, // #
24+
0x24,0x7a,0x2f,0x12,0x00, // $
25+
0x66,0x10,0x08,0x66,0x00, // %
26+
0x36,0x49,0x49,0x7c,0x00, // &
27+
0x03,0x00,0x00,0x00,0x00, // '
28+
0x1c,0x22,0x41,0x00,0x00, // (
29+
0x41,0x22,0x1c,0x00,0x00, // )
30+
0x54,0x38,0x54,0x00,0x00, // *
31+
0x10,0x38,0x10,0x00,0x00, // +
32+
0x80,0x60,0x00,0x00,0x00, // ,
33+
0x10,0x10,0x10,0x00,0x00, // -
34+
0x60,0x60,0x00,0x00,0x00, // .
35+
0x60,0x18,0x06,0x01,0x00, // /
36+
0x3e,0x41,0x41,0x3e,0x00, // 0
37+
0x42,0x7f,0x40,0x00,0x00, // 1
38+
0x62,0x51,0x49,0x46,0x00, // 2
39+
0x21,0x49,0x4d,0x33,0x00, // 3
40+
0x18,0x16,0x11,0x7f,0x00, // 4
41+
0x4f,0x49,0x49,0x31,0x00, // 5
42+
0x3c,0x4a,0x49,0x30,0x00, // 6
43+
0x01,0x61,0x19,0x07,0x00, // 7
44+
0x36,0x49,0x49,0x36,0x00, // 8
45+
0x06,0x49,0x29,0x1e,0x00, // 9
46+
0x33,0x00,0x00,0x00,0x00, // :
47+
0x80,0x6c,0x00,0x00,0x00, // ;
48+
0x10,0x28,0x44,0x00,0x00, // <
49+
0x28,0x28,0x28,0x00,0x00, // =
50+
0x44,0x28,0x10,0x00,0x00, // >
51+
0x02,0x51,0x09,0x06,0x00, // ?
52+
0x3e,0x49,0x55,0x5e,0x00, // @
53+
0x7e,0x09,0x09,0x7e,0x00, // A
54+
0x7f,0x49,0x49,0x36,0x00, // B
55+
0x3e,0x41,0x41,0x22,0x00, // C
56+
0x7f,0x41,0x41,0x3e,0x00, // D
57+
0x7f,0x49,0x49,0x41,0x00, // E
58+
0x7f,0x09,0x09,0x01,0x00, // F
59+
0x3e,0x41,0x49,0x79,0x00, // G
60+
0x7f,0x08,0x08,0x7f,0x00, // H
61+
0x41,0x7f,0x41,0x00,0x00, // I
62+
0x30,0x40,0x40,0x3f,0x00, // J
63+
0x7f,0x08,0x14,0x63,0x00, // K
64+
0x7f,0x40,0x40,0x40,0x00, // L
65+
0x7f,0x02,0x04,0x02,0x7f, // M
66+
0x7f,0x02,0x04,0x7f,0x00, // N
67+
0x3e,0x41,0x41,0x3e,0x00, // O
68+
0x7f,0x09,0x09,0x06,0x00, // P
69+
0x3e,0x41,0x21,0x5e,0x00, // Q
70+
0x7f,0x09,0x19,0x66,0x00, // R
71+
0x46,0x49,0x49,0x31,0x00, // S
72+
0x01,0x01,0x7f,0x01,0x01, // T
73+
0x3f,0x40,0x40,0x3f,0x00, // U
74+
0x7f,0x40,0x20,0x1f,0x00, // V
75+
0x3f,0x40,0x20,0x40,0x3f, // W
76+
0x77,0x08,0x08,0x77,0x00, // X
77+
0x47,0x48,0x48,0x3f,0x00, // Y
78+
0x71,0x49,0x45,0x43,0x00, // Z
79+
0x7f,0x41,0x00,0x00,0x00, // [
80+
0x01,0x06,0x18,0x60,0x00, // "\"
81+
0x41,0x7f,0x00,0x00,0x00, // ]
82+
0x04,0x02,0x04,0x00,0x00, // ^
83+
0x40,0x40,0x40,0x00,0x00, // _
84+
0x01,0x01,0x00,0x00,0x00, // `
85+
0x20,0x54,0x54,0x78,0x00, // a
86+
0x7f,0x44,0x44,0x38,0x00, // b
87+
0x38,0x44,0x44,0x28,0x00, // c
88+
0x38,0x44,0x44,0x7f,0x00, // d
89+
0x38,0x54,0x54,0x58,0x00, // e
90+
0x7e,0x09,0x09,0x02,0x00, // f
91+
0x18,0xa4,0xa4,0x7c,0x00, // g
92+
0x7f,0x04,0x04,0x78,0x00, // h
93+
0x04,0x7d,0x40,0x00,0x00, // i
94+
0x60,0x80,0x80,0x7d,0x00, // j
95+
0x7f,0x10,0x28,0x44,0x00, // k
96+
0x01,0x7f,0x40,0x00,0x00, // l
97+
0x7c,0x04,0x78,0x04,0x78, // m
98+
0x7c,0x04,0x04,0x78,0x00, // n
99+
0x38,0x44,0x44,0x38,0x00, // o
100+
0xfc,0x24,0x24,0x18,0x00, // p
101+
0x18,0x24,0x24,0xfc,0x00, // q
102+
0x7c,0x08,0x04,0x04,0x00, // r
103+
0x48,0x54,0x54,0x24,0x00, // s
104+
0x3e,0x44,0x44,0x20,0x00, // t
105+
0x3c,0x40,0x40,0x7c,0x00, // u
106+
0x7c,0x40,0x20,0x1c,0x00, // v
107+
0x3c,0x40,0x20,0x40,0x3c, // w
108+
0x6c,0x10,0x10,0x6c,0x00, // x
109+
0x1c,0xa0,0xa0,0x7c,0x00, // y
110+
0x64,0x54,0x4c,0x00,0x00, // z
111+
0x08,0x3e,0x41,0x00,0x00, // {
112+
0x7f,0x00,0x00,0x00,0x00, // |
113+
0x41,0x3e,0x08,0x00,0x00, // }
114+
0x08,0x04,0x08,0x04,0x00, // ~
115+
0x00,0x00,0x00,0x00,0x00,
116116
// Extra
117-
0x7e,0x09,0x7f,0x49,0x49,0x00, // Æ
118-
0x7e,0x24,0x24,0x18,0x00,0x00, // Þ
119-
0x7e,0x09,0x49,0x36,0x00,0x00, // ß
120-
0x20,0x54,0x78,0x54,0x58,0x00, // æ
121-
0x7f,0x24,0x24,0x18,0x00,0x00, // þ
122-
0x08,0x7e,0x49,0x41,0x00,0x00, // £
123-
0x47,0x48,0x48,0x3f,0x00,0x00, // ¥
124-
0x38,0x44,0x44,0x28,0x00,0x00, // ©
125-
0x02,0x05,0x02,0x00,0x00,0x00, // °
117+
0x7e,0x09,0x7f,0x49,0x49, // Æ
118+
0x7e,0x24,0x24,0x18,0x00, // Þ
119+
0x7e,0x09,0x49,0x36,0x00, // ß
120+
0x20,0x54,0x78,0x54,0x58, // æ
121+
0x7f,0x24,0x24,0x18,0x00, // þ
122+
0x08,0x7e,0x49,0x41,0x00, // £
123+
0x47,0x48,0x48,0x3f,0x00, // ¥
124+
0x38,0x44,0x44,0x28,0x00, // ©
125+
0x02,0x05,0x02,0x00,0x00, // °
126126
// Accents + Offsets
127127
// All chars are shifted 8px down into a 32 pixel canvas for combining with accents.
128128
// Accent shift values (the first two numbers in each line below) move the accent down to meet them.
129129
// These are the shift values for lower and UPPER case letters respectively.
130-
6,4, 0x00,0x00,0x01,0x02,0x00,0x00, // Grave
131-
6,4, 0x00,0x00,0x02,0x01,0x00,0x00, // Acute
132-
6,4, 0x00,0x02,0x01,0x02,0x00,0x00, // Circumflex
133-
6,4, 0x00,0x01,0x02,0x01,0x02,0x00, // Tilde
134-
6,4, 0x00,0x01,0x00,0x01,0x00,0x00, // Diaresis
135-
6,4, 0x00,0x02,0x05,0x02,0x00,0x00, // Ring Above
136-
6,4, 0x00,0x80,0x40,0x00,0x00,0x00, // Stroke
137-
9,9, 0x00,0x00,0xa0,0x40,0x00,0x00 // Cedilla
130+
6,4, 0x00,0x00,0x01,0x02,0x00, // Grave
131+
6,4, 0x00,0x00,0x02,0x01,0x00, // Acute
132+
6,4, 0x00,0x02,0x01,0x02,0x00, // Circumflex
133+
6,4, 0x00,0x01,0x02,0x01,0x02, // Tilde
134+
6,4, 0x00,0x01,0x00,0x01,0x00, // Diaresis
135+
6,4, 0x00,0x02,0x05,0x02,0x00, // Ring Above
136+
6,4, 0x00,0x80,0x40,0x00,0x00, // Stroke
137+
9,9, 0x00,0x00,0xa0,0x40,0x00 // Cedilla
138138
}
139139
};

libraries/pico_graphics/pico_graphics.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,11 +144,11 @@ namespace pimoroni {
144144
}
145145
}
146146

147-
void PicoGraphics::text(const std::string_view &t, const Point &p, int32_t wrap, float s, float a, uint8_t letter_spacing) {
147+
void PicoGraphics::text(const std::string_view &t, const Point &p, int32_t wrap, float s, float a, uint8_t letter_spacing, bool fixed_width) {
148148
if (bitmap_font) {
149149
bitmap::text(bitmap_font, [this](int32_t x, int32_t y, int32_t w, int32_t h) {
150150
rectangle(Rect(x, y, w, h));
151-
}, t, p.x, p.y, wrap, std::max(1.0f, s), letter_spacing);
151+
}, t, p.x, p.y, wrap, std::max(1.0f, s), letter_spacing, fixed_width);
152152
return;
153153
}
154154

@@ -166,8 +166,8 @@ namespace pimoroni {
166166
}
167167
}
168168

169-
int32_t PicoGraphics::measure_text(const std::string_view &t, float s, uint8_t letter_spacing) {
170-
if (bitmap_font) return bitmap::measure_text(bitmap_font, t, std::max(1.0f, s), letter_spacing);
169+
int32_t PicoGraphics::measure_text(const std::string_view &t, float s, uint8_t letter_spacing, bool fixed_width) {
170+
if (bitmap_font) return bitmap::measure_text(bitmap_font, t, std::max(1.0f, s), letter_spacing, fixed_width);
171171
if (hershey_font) return hershey::measure_text(hershey_font, t, s);
172172
return 0;
173173
}

libraries/pico_graphics/pico_graphics.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,8 +286,8 @@ namespace pimoroni {
286286
void rectangle(const Rect &r);
287287
void circle(const Point &p, int32_t r);
288288
void character(const char c, const Point &p, float s = 2.0f, float a = 0.0f);
289-
void text(const std::string_view &t, const Point &p, int32_t wrap, float s = 2.0f, float a = 0.0f, uint8_t letter_spacing = 1);
290-
int32_t measure_text(const std::string_view &t, float s = 2.0f, uint8_t letter_spacing = 1);
289+
void text(const std::string_view &t, const Point &p, int32_t wrap, float s = 2.0f, float a = 0.0f, uint8_t letter_spacing = 1, bool fixed_width = false);
290+
int32_t measure_text(const std::string_view &t, float s = 2.0f, uint8_t letter_spacing = 1, bool fixed_width = false);
291291
void polygon(const std::vector<Point> &points);
292292
void triangle(Point p1, Point p2, Point p3);
293293
void line(Point p1, Point p2);

0 commit comments

Comments
 (0)