summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-10-29 19:01:50 -0400
committerMatthias Clasen <mclasen@redhat.com>2022-01-28 09:03:03 -0500
commit0896a20eea58575a03a09ff43701684a3ba2395a (patch)
tree2765a34686f8222fc8526724d91d5eff1db6fa56
parent580cbd593d42d2152441d264d333f3dbdd424a9a (diff)
downloadpango-0896a20eea58575a03a09ff43701684a3ba2395a.tar.gz
coverage: Add a constructor from hb_face_t
Add private API to create a PangoCoverage object from a hb_face_t. This will be used in future commits.
-rw-r--r--pango/pango-coverage-private.h2
-rw-r--r--pango/pango-coverage.c21
2 files changed, 23 insertions, 0 deletions
diff --git a/pango/pango-coverage-private.h b/pango/pango-coverage-private.h
index af86ab00..4f7e79ea 100644
--- a/pango/pango-coverage-private.h
+++ b/pango/pango-coverage-private.h
@@ -56,6 +56,8 @@ struct _PangoCoverageClass
PangoCoverage * (* copy) (PangoCoverage *coverage);
};
+PangoCoverage *pango_coverage_new_for_hb_face (hb_face_t *hb_face);
+
G_END_DECLS
#endif /* __PANGO_COVERAGE_PRIVATE_H__ */
diff --git a/pango/pango-coverage.c b/pango/pango-coverage.c
index f616305d..281407a2 100644
--- a/pango/pango-coverage.c
+++ b/pango/pango-coverage.c
@@ -119,6 +119,27 @@ pango_coverage_new (void)
return g_object_new (PANGO_TYPE_COVERAGE, NULL);
}
+/*< private>
+ * pango_coverage_new_for_hb_face:
+ * @hb_face: a `hb_face_t`
+ *
+ * Creates a new `PangoCoverage` for the given @hb_face.
+ *
+ * Returns: the newly allocated `PangoCoverage`
+ */
+PangoCoverage *
+pango_coverage_new_for_hb_face (hb_face_t *hb_face)
+{
+ PangoCoverage *coverage;
+
+ coverage = g_object_new (PANGO_TYPE_COVERAGE, NULL);
+
+ coverage->chars = hb_set_create ();
+ hb_face_collect_unicodes (hb_face, coverage->chars);
+
+ return coverage;
+}
+
/**
* pango_coverage_copy:
* @coverage: a `PangoCoverage`