Mercurial > mplayer.hg
annotate libass/ass_font.h @ 36571:689594b793f7
demux_mov: Initialize "version" variable.
The AMR cases leave it uninitialized otherwise.
author | reimar |
---|---|
date | Mon, 20 Jan 2014 22:08:36 +0000 |
parents | 6e7f60f6f9d4 |
children |
rev | line source |
---|---|
21277 | 1 /* |
26723 | 2 * Copyright (C) 2006 Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
3 * | |
26738
588ce97b44f2
Speak of libass instead of MPlayer in the libass license headers.
diego
parents:
26723
diff
changeset
|
4 * This file is part of libass. |
26723 | 5 * |
34011 | 6 * Permission to use, copy, modify, and distribute this software for any |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
26723 | 9 * |
34011 | 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
26723 | 17 */ |
21277 | 18 |
25897
aaebaf255b23
Consistently give all libass multiple inclusion guards a LIBASS_ prefix.
diego
parents:
25535
diff
changeset
|
19 #ifndef LIBASS_FONT_H |
aaebaf255b23
Consistently give all libass multiple inclusion guards a LIBASS_ prefix.
diego
parents:
25535
diff
changeset
|
20 #define LIBASS_FONT_H |
21277 | 21 |
26138
74055622161d
Add missing header #includes to fix 'make checkheaders'.
diego
parents:
25897
diff
changeset
|
22 #include <stdint.h> |
74055622161d
Add missing header #includes to fix 'make checkheaders'.
diego
parents:
25897
diff
changeset
|
23 #include <ft2build.h> |
74055622161d
Add missing header #includes to fix 'make checkheaders'.
diego
parents:
25897
diff
changeset
|
24 #include FT_GLYPH_H |
34295 | 25 #include FT_OUTLINE_H |
26 | |
26138
74055622161d
Add missing header #includes to fix 'make checkheaders'.
diego
parents:
25897
diff
changeset
|
27 #include "ass.h" |
74055622161d
Add missing header #includes to fix 'make checkheaders'.
diego
parents:
25897
diff
changeset
|
28 #include "ass_types.h" |
74055622161d
Add missing header #includes to fix 'make checkheaders'.
diego
parents:
25897
diff
changeset
|
29 |
34295 | 30 #define VERTICAL_LOWER_BOUND 0x02f1 |
31 | |
30200 | 32 #define ASS_FONT_MAX_FACES 10 |
33 #define DECO_UNDERLINE 1 | |
34 #define DECO_STRIKETHROUGH 2 | |
21321
7b7627ff1937
Move ass_font_desc_t and ass_font_t declarations to ass_font.h.
eugeni
parents:
21317
diff
changeset
|
35 |
34295 | 36 typedef struct ass_shaper_font_data ASS_ShaperFontData; |
37 | |
30200 | 38 typedef struct { |
39 char *family; | |
40 unsigned bold; | |
41 unsigned italic; | |
42 int treat_family_as_pattern; | |
31853 | 43 int vertical; // @font vertical layout |
30200 | 44 } ASS_FontDesc; |
21619
b4b51eb2904f
Keep reselected fonts in an array, adding new ones to the end. Glyph
eugeni
parents:
21618
diff
changeset
|
45 |
30200 | 46 typedef struct { |
47 ASS_FontDesc desc; | |
48 ASS_Library *library; | |
49 FT_Library ftlibrary; | |
50 FT_Face faces[ASS_FONT_MAX_FACES]; | |
34295 | 51 ASS_ShaperFontData *shaper_priv; |
30200 | 52 int n_faces; |
53 double scale_x, scale_y; // current transform | |
54 FT_Vector v; // current shift | |
55 double size; | |
56 } ASS_Font; | |
21277 | 57 |
34295 | 58 #include "ass_cache.h" |
59 | |
60 ASS_Font *ass_font_new(Cache *font_cache, ASS_Library *library, | |
30200 | 61 FT_Library ftlibrary, void *fc_priv, |
62 ASS_FontDesc *desc); | |
63 void ass_font_set_transform(ASS_Font *font, double scale_x, | |
64 double scale_y, FT_Vector *v); | |
34295 | 65 void ass_face_set_size(FT_Face face, double size); |
30200 | 66 void ass_font_set_size(ASS_Font *font, double size); |
67 void ass_font_get_asc_desc(ASS_Font *font, uint32_t ch, int *asc, | |
68 int *desc); | |
34295 | 69 int ass_font_get_index(void *fcpriv, ASS_Font *font, uint32_t symbol, |
70 int *face_index, int *glyph_index); | |
30200 | 71 FT_Glyph ass_font_get_glyph(void *fontconfig_priv, ASS_Font *font, |
34295 | 72 uint32_t ch, int face_index, int index, |
73 ASS_Hinting hinting, int deco); | |
30200 | 74 FT_Vector ass_font_get_kerning(ASS_Font *font, uint32_t c1, uint32_t c2); |
75 void ass_font_free(ASS_Font *font); | |
34295 | 76 void fix_freetype_stroker(FT_Outline *outline, int border_x, int border_y); |
77 void outline_copy(FT_Library lib, FT_Outline *source, FT_Outline **dest); | |
78 void outline_free(FT_Library lib, FT_Outline *outline); | |
21277 | 79 |
30200 | 80 #endif /* LIBASS_FONT_H */ |