summaryrefslogtreecommitdiffstats
path: root/libass/ass_font.c
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-04-27 14:25:36 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-04-27 14:25:36 +0000
commitc113cc173e4f94fb4cb1af603ee26c58ff93bf1d (patch)
treef677813b55b3c6428b85288ee42eeab9e4fd63a2 /libass/ass_font.c
parent13d73e231d48da28459f1be4d7a274e4b38ed553 (diff)
downloadlibass-c113cc173e4f94fb4cb1af603ee26c58ff93bf1d.tar.bz2
libass-c113cc173e4f94fb4cb1af603ee26c58ff93bf1d.tar.xz
Add -ass-hinting option for setting font hinting method.
It is possible to separately configure hinting for scaled and unscaled osd. The default is native hinter for unscaled osd (only vo_gl at this point), no hinting for vf_ass. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23152 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass/ass_font.c')
-rw-r--r--libass/ass_font.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/libass/ass_font.c b/libass/ass_font.c
index 285ecde..57423d1 100644
--- a/libass/ass_font.c
+++ b/libass/ass_font.c
@@ -229,13 +229,14 @@ void ass_font_get_asc_desc(ass_font_t* font, uint32_t ch, int* asc, int* desc)
* \brief Get a glyph
* \param ch character code
**/
-FT_Glyph ass_font_get_glyph(void* fontconfig_priv, ass_font_t* font, uint32_t ch)
+FT_Glyph ass_font_get_glyph(void* fontconfig_priv, ass_font_t* font, uint32_t ch, ass_hinting_t hinting)
{
int error;
int index = 0;
int i;
FT_Glyph glyph;
FT_Face face = 0;
+ int flags = 0;
if (ch < 0x20)
return 0;
@@ -264,7 +265,14 @@ FT_Glyph ass_font_get_glyph(void* fontconfig_priv, ass_font_t* font, uint32_t ch
}
#endif
- error = FT_Load_Glyph(face, index, FT_LOAD_NO_BITMAP );
+ switch (hinting) {
+ case ASS_HINTING_NONE: flags = FT_LOAD_NO_HINTING; break;
+ case ASS_HINTING_LIGHT: flags = FT_LOAD_FORCE_AUTOHINT | FT_LOAD_TARGET_LIGHT; break;
+ case ASS_HINTING_NORMAL: flags = FT_LOAD_FORCE_AUTOHINT; break;
+ case ASS_HINTING_NATIVE: flags = 0; break;
+ }
+
+ error = FT_Load_Glyph(face, index, FT_LOAD_NO_BITMAP | flags);
if (error) {
mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_ErrorLoadingGlyph);
return 0;