diff options
author | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-04-27 14:25:36 +0000 |
---|---|---|
committer | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-04-27 14:25:36 +0000 |
commit | c67220c86fa6267d8e0aa5b69d0eebbe17e0ede2 (patch) | |
tree | b8e7d650db0b09986770f59af665319b048f38e7 /libass/ass_font.c | |
parent | 13156cd7946705c89ad04edba05c6434d1675e46 (diff) | |
download | mpv-c67220c86fa6267d8e0aa5b69d0eebbe17e0ede2.tar.bz2 mpv-c67220c86fa6267d8e0aa5b69d0eebbe17e0ede2.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.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/libass/ass_font.c b/libass/ass_font.c index 285ecde63a..57423d1dd7 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; |