summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEbrahim Byagowi <ebrahim@gnu.org>2019-03-29 13:00:56 -0700
committerGitHub <noreply@github.com>2019-03-29 13:00:56 -0700
commitb292772e6ef15728dd66329e637265748df0efe1 (patch)
tree6f9974e1f296718ce77749e6832ad6aaf0491731
parent59f36f36820f6e6fb1d3b6da26d6b5ee7588c42f (diff)
[dwrite] A new API, hb_directwrite_face_get_font_face (#1600)HEADmaster
Can be useful when using HarfBuzz for font loading and shaping but using DirectWrite for rendering.
-rw-r--r--docs/harfbuzz-sections.txt10
-rw-r--r--src/hb-directwrite.cc34
-rw-r--r--src/hb-directwrite.h3
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 */