diff options
author | Ebrahim Byagowi <ebrahim@gnu.org> | 2019-03-29 13:00:56 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-29 13:00:56 -0700 |
commit | b292772e6ef15728dd66329e637265748df0efe1 (patch) | |
tree | 6f9974e1f296718ce77749e6832ad6aaf0491731 | |
parent | 59f36f36820f6e6fb1d3b6da26d6b5ee7588c42f (diff) |
Can be useful when using HarfBuzz for font loading and shaping
but using DirectWrite for rendering.
-rw-r--r-- | docs/harfbuzz-sections.txt | 10 | ||||
-rw-r--r-- | src/hb-directwrite.cc | 34 | ||||
-rw-r--r-- | src/hb-directwrite.h | 3 |
3 files changed, 41 insertions, 6 deletions
diff --git a/docs/harfbuzz-sections.txt b/docs/harfbuzz-sections.txt index 27dc1e2d..f97902f7 100644 --- a/docs/harfbuzz-sections.txt +++ b/docs/harfbuzz-sections.txt @@ -217,6 +217,14 @@ hb_coretext_font_get_ct_font </SECTION> <SECTION> +<FILE>hb-directwrite</FILE> +hb_directwrite_face_create +hb_directwrite_face_get_font_face +<SUBSECTION Private> +hb_directwrite_shape_experimental_width +</SECTION> + +<SECTION> <FILE>hb-face</FILE> hb_face_count hb_face_t @@ -715,8 +723,6 @@ hb_unicode_script_func_t <FILE>hb-uniscribe</FILE> hb_uniscribe_font_get_hfont hb_uniscribe_font_get_logfontw -<SUBSECTION Private> -hb_directwrite_shape_experimental_width </SECTION> <SECTION> diff --git a/src/hb-directwrite.cc b/src/hb-directwrite.cc index cbf04a82..d8076c92 100644 --- a/src/hb-directwrite.cc +++ b/src/hb-directwrite.cc @@ -846,10 +846,23 @@ _hb_directwrite_shape (hb_shape_plan_t *shape_plan, features, num_features, 0); } -/* - * Public [experimental] API - */ - +/** + * hb_directwrite_shape_experimental_width: + * Experimental API to test DirectWrite's justification algorithm. + * + * It inserts Kashida at wrong order so don't use the API ever. + * + * It doesn't work with cygwin/msys due to header bugs so one + * should use MSVC toolchain in order to use it for now. + * + * @font: + * @buffer: + * @features: + * @num_features: + * @width: + * + * Since: 1.4.2 + **/ hb_bool_t hb_directwrite_shape_experimental_width (hb_font_t *font, hb_buffer_t *buffer, @@ -918,6 +931,7 @@ _hb_directwrite_font_release (void *data) /** * hb_directwrite_face_create: * @font_face: + * * Since: 2.4.0 **/ hb_face_t * @@ -928,3 +942,15 @@ hb_directwrite_face_create (IDWriteFontFace *font_face) return hb_face_create_for_tables (reference_table, font_face, _hb_directwrite_font_release); } + +/** +* hb_directwrite_face_get_font_face: +* @face: +* +* Since: REPLACEME +**/ +IDWriteFontFace * +hb_directwrite_face_get_font_face (hb_face_t *face) +{ + return face->data.directwrite->fontFace; +} diff --git a/src/hb-directwrite.h b/src/hb-directwrite.h index 09776fd0..de813d06 100644 --- a/src/hb-directwrite.h +++ b/src/hb-directwrite.h @@ -37,6 +37,9 @@ hb_directwrite_shape_experimental_width (hb_font_t *font, hb_buffer_t *buffer, HB_EXTERN hb_face_t * hb_directwrite_face_create (IDWriteFontFace *font_face); +HB_EXTERN IDWriteFontFace * +hb_directwrite_face_get_font_face (hb_face_t *face); + HB_END_DECLS #endif /* HB_DIRECTWRITE_H */ |