summaryrefslogtreecommitdiffstats
path: root/libass/ass_font.c
diff options
context:
space:
mode:
Diffstat (limited to 'libass/ass_font.c')
-rw-r--r--libass/ass_font.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libass/ass_font.c b/libass/ass_font.c
index 189173e6..4e5e8340 100644
--- a/libass/ass_font.c
+++ b/libass/ass_font.c
@@ -90,6 +90,13 @@ ass_font_t* ass_font_new(FT_Library ftlibrary, void* fc_priv, ass_font_desc_t* d
void ass_font_set_transform(ass_font_t* font, FT_Matrix* m, FT_Vector* v)
{
+ if (font->m.xx != m->xx ||
+ font->m.xy != m->xy ||
+ font->m.yx != m->yx ||
+ font->m.yy != m->yy ||
+ font->v.x != v->x ||
+ font->v.y != v->y
+ ) {
font->m.xx = m->xx;
font->m.xy = m->xy;
font->m.yx = m->yx;
@@ -97,12 +104,15 @@ void ass_font_set_transform(ass_font_t* font, FT_Matrix* m, FT_Vector* v)
font->v.x = v->x;
font->v.y = v->y;
FT_Set_Transform(font->face, &font->m, &font->v);
+ }
}
void ass_font_set_size(ass_font_t* font, int size)
{
+ if (font->size != size) {
font->size = size;
FT_Set_Pixel_Sizes(font->face, 0, size);
+ }
}
FT_Glyph ass_font_get_glyph(void* fontconfig_priv, ass_font_t* font, uint32_t ch)