diff options
Diffstat (limited to 'libass/ass_font.h')
-rw-r--r-- | libass/ass_font.h | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/libass/ass_font.h b/libass/ass_font.h index f3c3f8e..693cabf 100644 --- a/libass/ass_font.h +++ b/libass/ass_font.h @@ -24,8 +24,13 @@ #include FT_GLYPH_H #include FT_OUTLINE_H +typedef struct ass_font ASS_Font; +typedef struct ass_font_desc ASS_FontDesc; + #include "ass.h" #include "ass_types.h" +#include "ass_fontselect.h" +#include "ass_cache.h" #define VERTICAL_LOWER_BOUND 0x02f1 @@ -33,32 +38,29 @@ #define DECO_UNDERLINE 1 #define DECO_STRIKETHROUGH 2 -typedef struct ass_shaper_font_data ASS_ShaperFontData; - -typedef struct { +struct ass_font_desc { char *family; unsigned bold; unsigned italic; - int treat_family_as_pattern; int vertical; // @font vertical layout -} ASS_FontDesc; +}; -typedef struct { +struct ass_font { ASS_FontDesc desc; ASS_Library *library; FT_Library ftlibrary; + int faces_uid[ASS_FONT_MAX_FACES]; FT_Face faces[ASS_FONT_MAX_FACES]; ASS_ShaperFontData *shaper_priv; int n_faces; double scale_x, scale_y; // current transform FT_Vector v; // current shift double size; -} ASS_Font; - -#include "ass_cache.h" +}; +void charmap_magic(ASS_Library *library, FT_Face face); ASS_Font *ass_font_new(Cache *font_cache, ASS_Library *library, - FT_Library ftlibrary, void *fc_priv, + FT_Library ftlibrary, ASS_FontSelector *fontsel, ASS_FontDesc *desc); void ass_font_set_transform(ASS_Font *font, double scale_x, double scale_y, FT_Vector *v); @@ -66,10 +68,10 @@ void ass_face_set_size(FT_Face face, double size); void ass_font_set_size(ASS_Font *font, double size); void ass_font_get_asc_desc(ASS_Font *font, uint32_t ch, int *asc, int *desc); -int ass_font_get_index(void *fcpriv, ASS_Font *font, uint32_t symbol, - int *face_index, int *glyph_index); +int ass_font_get_index(ASS_FontSelector *fontsel, ASS_Font *font, + uint32_t symbol, int *face_index, int *glyph_index); uint32_t ass_font_index_magic(FT_Face face, uint32_t symbol); -FT_Glyph ass_font_get_glyph(void *fontconfig_priv, ASS_Font *font, +FT_Glyph ass_font_get_glyph(ASS_Font *font, uint32_t ch, int face_index, int index, ASS_Hinting hinting, int deco); FT_Vector ass_font_get_kerning(ASS_Font *font, uint32_t c1, uint32_t c2); |