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");
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;
unsigned sqrti(unsigned num)
{
- unsigned result = num;
- while(result*result>num)
- {
- unsigned diff = result*result-num;
- if(diff<result)
- break;
-
- result -= (diff+result)/(result*2);
- }
+ unsigned result = (num>0xFFFF ? 0xFFFF : 0x100);
+ while(result && result*result>=result+num)
+ result -= (result*result+result-num)/(result*2);
return result;
}
}
}
- return sqrti(closest)*0x7F/range;
+ return sqrti(closest*0x3F01)/range;
}
int create_distance_field(const FT_Bitmap *bmp, Image *image, unsigned scale, unsigned margin)