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
commitc67220c86fa6267d8e0aa5b69d0eebbe17e0ede2 (patch)
treeb8e7d650db0b09986770f59af665319b048f38e7 /libass/ass_font.c
parent13156cd7946705c89ad04edba05c6434d1675e46 (diff)
downloadmpv-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.c12
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;