[var] Add hb_font_set_var_coords_design()
diff --git a/src/hb-font.cc b/src/hb-font.cc
index e2a0a5f..e7f5752 100644
--- a/src/hb-font.cc
+++ b/src/hb-font.cc
@@ -1543,10 +1543,27 @@
if (y_ppem) *y_ppem = font->y_ppem;
}
+/*
+ * Variations
+ */
+
+void
+hb_font_set_var_coords_design (hb_font_t *font,
+ float *coords,
+ unsigned int coords_length)
+{
+ int normalized[coords_length]; // XXX Remove variable-length array use...
+
+ hb_face_t *face = font->face;
+ for (unsigned int i = 0; i < coords_length; i++)
+ normalized[i] = hb_ot_var_normalize_axis_value (face, i, coords[i]);
+
+ hb_font_set_var_coords_normalized (font, normalized, coords_length);
+}
void
hb_font_set_var_coords_normalized (hb_font_t *font,
- int *coords, /* XXX 2.14 normalized */
+ int *coords, /* 2.14 normalized */
unsigned int coords_length)
{
if (font->immutable)
@@ -1570,7 +1587,7 @@
unsigned int *length)
{
if (length)
- *length = font->coords_length;
+ *length = font->num_coords;
return font->coords;
}
diff --git a/src/hb-font.h b/src/hb-font.h
index 5f22331..31e5971 100644
--- a/src/hb-font.h
+++ b/src/hb-font.h
@@ -605,8 +605,13 @@
HB_EXTERN void
+hb_font_set_var_coords_design (hb_font_t *font,
+ float *coords,
+ unsigned int coords_length);
+
+HB_EXTERN void
hb_font_set_var_coords_normalized (hb_font_t *font,
- int *coords, /* XXX 2.14 normalized */
+ int *coords, /* 2.14 normalized */
unsigned int coords_length);
HB_EXTERN int *