summaryrefslogtreecommitdiffstats
path: root/libass/ass_render.h
diff options
context:
space:
mode:
authorGrigori Goronzy <greg@blackbox>2011-07-11 13:00:08 +0200
committerGrigori Goronzy <greg@blackbox>2011-07-11 13:05:52 +0200
commitdb6ccb3634db5ccbce1a2fdaa383085242d52c82 (patch)
tree33cf84b60230d8a6f2188af87581580cad3d8102 /libass/ass_render.h
parent778c5cebe439598bf3a6f0277ed7516928f0ff00 (diff)
downloadlibass-db6ccb3634db5ccbce1a2fdaa383085242d52c82.tar.bz2
libass-db6ccb3634db5ccbce1a2fdaa383085242d52c82.tar.xz
HarfBuzz shaping support
Split up text into runs with the same direction, font face and font size, shape these runs with HarfBuzz and reorder accordingly. This noticeably improves Arabic shaping and should make shaping for many other scripts work. HarfBuzz also does kerning for Latin text.
Diffstat (limited to 'libass/ass_render.h')
-rw-r--r--libass/ass_render.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/libass/ass_render.h b/libass/ass_render.h
index 8b446e6..ea29c79 100644
--- a/libass/ass_render.h
+++ b/libass/ass_render.h
@@ -100,6 +100,8 @@ typedef struct {
unsigned symbol;
unsigned skip; // skip glyph when layouting text
ASS_Font *font;
+ int face_index;
+ int glyph_index;
double font_size;
ASS_Drawing *drawing;
FT_Outline *outline;
@@ -109,6 +111,7 @@ typedef struct {
Bitmap *bm_s; // shadow bitmap
FT_BBox bbox;
FT_Vector pos;
+ FT_Vector offset;
char linebreak; // the first (leading) glyph of some line ?
uint32_t c[4]; // colors
FT_Vector advance; // 26.6
@@ -131,6 +134,7 @@ typedef struct {
int flags;
int bm_run_id;
+ int shape_run_id;
BitmapHashKey hash_key;
} GlyphInfo;