cnFontGen

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 41ac0b09e8215a17d87a486e863083a30ca629d3
parent b3b6b1f27127920193f9c667aed8841b5f435c8c
Author: Harrison <harrison_k_a@hotmail.com>
Date:   Sat, 19 Sep 2015 21:46:45 -0400

Still need to fix kerning, it is weird on some letters

Diffstat:
Msrc/main.c | 31+++++++++++++++++++------------
1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/src/main.c b/src/main.c @@ -12,7 +12,12 @@ typedef struct }ftInfo; int paddingSpace = 30; -int paddingHeight = 60; +int paddingHeight = 8; + +int clamp(int input, int min, int max) +{ + return input > max ? max : input < min ? min : input; +} int main(int argc, char **argv) { @@ -23,7 +28,7 @@ int main(int argc, char **argv) int k = 0; int accumWidth = 0; - int fontHeight = 50; + int fontHeight = 35; int maxHei = 0; int biggestBottom = 0; int bestMiddle = 0; @@ -83,7 +88,7 @@ int main(int argc, char **argv) FT_Glyph gly; FT_Load_Char(ft.face, i, FT_LOAD_RENDER); - printf("%c = %i \n", (char)i, g->bitmap.rows); + printf("%c = %i \n", (char)i, g->advance.x >> 6); for (j = 0; j < g->bitmap.rows; ++j) { @@ -95,20 +100,22 @@ int main(int argc, char **argv) outputBuffer[(((j + (maxHei / 2)) - g->bitmap_top + bestMiddle)*accumWidth) + k + xInc] = bytes; } } - - outputBuffer[xInc - 1] = 0xFFFF0000; - outputBuffer[xInc] = 0xFF000000; - outputBuffer[xInc + g->bitmap.width] = 0xFF000000; - outputBuffer[xInc + g->bitmap.width + 1] = 0xFFFF0000; - - xInc += g->bitmap.width + paddingSpace; + + FT_Get_Glyph(g, &gly); FT_Glyph_Get_CBox(gly, FT_GLYPH_BBOX_PIXELS, &bbox); + + - //outputBuffer[xInc + (g->advance.x >> 6)] = 0xFF000000; - //outputBuffer[xInc + bbox.xMin] = 0xFF000000; + outputBuffer[xInc - clamp((paddingSpace / 2) - 1, bbox.xMin, (paddingSpace / 2) - 1)] = 0xFFFF0000; + outputBuffer[xInc - bbox.xMin] = 0xFF000000; + outputBuffer[xInc + bbox.xMax] = 0xFF000000; + outputBuffer[xInc + clamp(g->bitmap.width + (paddingSpace / 2) - 1, bbox.xMax + 1, g->bitmap.width + (paddingSpace / 2) - 1)] = 0xFFFF0000; + printf("\t xMin: %i xMax: %i \n \t width: %i \n", bbox.xMin, bbox.xMax, g->bitmap.width); + + xInc += g->bitmap.width + paddingSpace; } lodepng_encode32_file("harbage.png", (char*)outputBuffer, accumWidth, maxHei);