summaryrefslogtreecommitdiff
path: root/fontbaker/fontbaker.c
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2025-05-24 17:01:01 -0700
committer3gg <3gg@shellblade.net>2025-05-24 17:01:01 -0700
commit0ffd63fed9dcfb60be7378b6f53f0f1d011fd26c (patch)
tree4a3b0f541b91349955b5b58f24b47c8b38f287f0 /fontbaker/fontbaker.c
parent68a3532728b55b73d8bcadb8ccfc1d9396346cd2 (diff)
Tweaksmain
Diffstat (limited to 'fontbaker/fontbaker.c')
-rw-r--r--fontbaker/fontbaker.c31
1 files changed, 19 insertions, 12 deletions
diff --git a/fontbaker/fontbaker.c b/fontbaker/fontbaker.c
index a11aa88..25d629d 100644
--- a/fontbaker/fontbaker.c
+++ b/fontbaker/fontbaker.c
@@ -37,17 +37,31 @@ static void RenderGlyph(
37 printf("\n"); 37 printf("\n");
38} 38}
39 39
40static char GetSymbol(unsigned char pixel) {
41 if (pixel >= 128) {
42 return '#';
43 } else if (pixel >= 32) {
44 return '*';
45 } else if (pixel > 0) {
46 return '.';
47 } else {
48 return ' ';
49 }
50}
51
40static void RenderText(const FontAtlas* atlas, const char* text) { 52static void RenderText(const FontAtlas* atlas, const char* text) {
53 assert(atlas);
41 assert(text); 54 assert(text);
42 55
43 const int glyph_width = atlas->header.glyph_width; 56 const int glyph_width = atlas->header.glyph_width;
44 const int glyph_height = atlas->header.glyph_height; 57 const int glyph_height = atlas->header.glyph_height;
45 const int glyph_size = glyph_width * glyph_height; 58 const int glyph_size = glyph_width * glyph_height;
59 const size_t text_length = strlen(text);
46 60
47 for (int y = 0; y < glyph_height; ++y) { 61 for (int y = 0; y < glyph_height; ++y) {
48 printf("%02d ", y); 62 printf("%02d ", y);
49 63
50 for (size_t i = 0; i < strlen(text); ++i) { 64 for (size_t i = 0; i < text_length; ++i) {
51 const char c = text[i]; 65 const char c = text[i];
52 const int glyph_offset = (c - FontGlyphStart) * glyph_size; 66 const int glyph_offset = (c - FontGlyphStart) * glyph_size;
53 const int row_offset = (y * glyph_width); 67 const int row_offset = (y * glyph_width);
@@ -55,14 +69,7 @@ static void RenderText(const FontAtlas* atlas, const char* text) {
55 const unsigned char* pixel = atlas->pixels + glyph_offset + row_offset; 69 const unsigned char* pixel = atlas->pixels + glyph_offset + row_offset;
56 70
57 for (int x = 0; x < glyph_width; ++x, ++pixel) { 71 for (int x = 0; x < glyph_width; ++x, ++pixel) {
58 unsigned char p = ' '; 72 unsigned char p = GetSymbol(*pixel);
59 if (*pixel >= 128) {
60 p = '#';
61 } else if (*pixel >= 32) {
62 p = '*';
63 } else if (*pixel > 0) {
64 p = '.';
65 }
66 printf("%c", p); 73 printf("%c", p);
67 } 74 }
68 } 75 }