X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=ttf2png.c;h=1c17c6b16b11795d07a58e524e800a68d6e263df;hb=ab24ffddf38d00bdb474fb140cbd7001e4453608;hp=5e6e351328e30b78f0b641ec867cda66d8313351;hpb=887d2514f9c7e57898cec5d598cd2a3bcd9ce757;p=ttf2png.git diff --git a/ttf2png.c b/ttf2png.c index 5e6e351..1c17c6b 100644 --- a/ttf2png.c +++ b/ttf2png.c @@ -220,7 +220,11 @@ int main(int argc, char **argv) printf("Glyphs: %ld\n", face->num_glyphs); } - err = FT_Set_Pixel_Sizes(face, 0, (distfield ? size*distfield : size)); + font.size = size; + if(distfield) + size *= distfield; + + err = FT_Set_Pixel_Sizes(face, 0, size); if(err) { fprintf(stderr, "Couldn't set size\n"); @@ -237,7 +241,6 @@ int main(int argc, char **argv) else sort_and_compact_ranges(ranges, &n_ranges); - font.size = size; err = init_font(&font, face, ranges, n_ranges, autohinter, distfield); if(err) return 1; @@ -694,15 +697,9 @@ int copy_bitmap(const FT_Bitmap *bmp, Image *image) unsigned sqrti(unsigned num) { - unsigned result = num; - while(result*result>num) - { - unsigned diff = result*result-num; - if(diff0xFFFF ? 0xFFFF : 0x100); + while(result && result*result>=result+num) + result -= (result*result+result-num)/(result*2); return result; } @@ -740,7 +737,7 @@ unsigned find_distance_to_edge(const Image *image, int origin_x, int origin_y, u } } - return sqrti(closest)*0x7F/range; + return sqrti(closest*0x3F01)/range; } int create_distance_field(const FT_Bitmap *bmp, Image *image, unsigned scale, unsigned margin)