diff options
author | Grigori Goronzy <greg@blackbox> | 2011-07-06 23:19:54 +0200 |
---|---|---|
committer | Grigori Goronzy <greg@blackbox> | 2011-07-06 23:24:30 +0200 |
commit | 3bb8743641c398e0807322ea74754d7e54fbbc3d (patch) | |
tree | e922f720492f52868fa7031fcbb63c18299714b1 /libass/ass_shaper.h | |
parent | 87d472953d5eb58a0e0b8d6414e7ffcd3678d83a (diff) | |
download | libass-3bb8743641c398e0807322ea74754d7e54fbbc3d.tar.bz2 libass-3bb8743641c398e0807322ea74754d7e54fbbc3d.tar.xz |
Provisional bidi and shaping support
Adds fully working bidirectional text and simple shaping support.
The following works:
- bidirectional text according to the Unicode Bidirectional Algorithm
- simple shaper for mirrored forms (brackets, etc.) according to
rule L4 of the Unicode Bidirectional Algorithm
- reordering into visual order with correct line wrapping
However, the implementation certainly needs efficiency improvements
(caching, less malloc'ing), a proper shaper (HarfBuzz) needs to be
hooked up and various bugs with karaoke and positioning need to be
fixed.
Diffstat (limited to 'libass/ass_shaper.h')
-rw-r--r-- | libass/ass_shaper.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/libass/ass_shaper.h b/libass/ass_shaper.h new file mode 100644 index 0000000..7dc2f27 --- /dev/null +++ b/libass/ass_shaper.h @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2011 Grigori Goronzy <greg@chown.ath.cx> + * + * This file is part of libass. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef ASS_SHAPER_H +#define ASS_SHAPER_H + +#include <fribidi/fribidi.h> + +void ass_shaper_shape(TextInfo *text_info, FriBidiCharType *ctypes, + FriBidiLevel *emblevels); +void ass_shaper_reorder(TextInfo *text_info, FriBidiCharType *ctypes, + FriBidiLevel *emblevels, FriBidiStrIndex *cmap); +#endif |