hb_bool_t immutable;
- hb_font_get_glyph_func_t get_glyph;
- hb_font_get_contour_point_func_t get_contour_point;
- hb_font_get_glyph_metrics_func_t get_glyph_metrics;
- hb_font_get_kerning_func_t get_kerning;
+ struct {
+ hb_font_get_glyph_func_t get_glyph;
+ hb_font_get_contour_point_func_t get_contour_point;
+ hb_font_get_glyph_metrics_func_t get_glyph_metrics;
+ hb_font_get_kerning_func_t get_kerning;
+ } v;
};
extern HB_INTERNAL hb_font_funcs_t _hb_font_funcs_nil;
TRUE, /* immutable */
+ {
hb_font_get_glyph_nil,
hb_font_get_contour_point_nil,
hb_font_get_glyph_metrics_nil,
hb_font_get_kerning_nil
+ }
};
hb_font_funcs_t *
if (ffuncs->immutable)
return;
- ffuncs->get_glyph = glyph_func ? glyph_func : hb_font_get_glyph_nil;
+ ffuncs->v.get_glyph = glyph_func ? glyph_func : hb_font_get_glyph_nil;
}
void
if (ffuncs->immutable)
return;
- ffuncs->get_contour_point = contour_point_func ? contour_point_func : hb_font_get_contour_point_nil;
+ ffuncs->v.get_contour_point = contour_point_func ? contour_point_func : hb_font_get_contour_point_nil;
}
void
if (ffuncs->immutable)
return;
- ffuncs->get_glyph_metrics = glyph_metrics_func ? glyph_metrics_func : hb_font_get_glyph_metrics_nil;
+ ffuncs->v.get_glyph_metrics = glyph_metrics_func ? glyph_metrics_func : hb_font_get_glyph_metrics_nil;
}
void
if (ffuncs->immutable)
return;
- ffuncs->get_kerning = kerning_func ? kerning_func : hb_font_get_kerning_nil;
+ ffuncs->v.get_kerning = kerning_func ? kerning_func : hb_font_get_kerning_nil;
}
hb_font_get_glyph (hb_font_t *font, hb_face_t *face,
hb_codepoint_t unicode, hb_codepoint_t variation_selector)
{
- return font->klass->get_glyph (font, face, font->user_data,
- unicode, variation_selector);
+ return font->klass->v.get_glyph (font, face, font->user_data,
+ unicode, variation_selector);
}
hb_bool_t
hb_codepoint_t glyph, hb_position_t *x, hb_position_t *y)
{
*x = 0; *y = 0;
- return font->klass->get_contour_point (font, face, font->user_data,
- point_index,
- glyph, x, y);
+ return font->klass->v.get_contour_point (font, face, font->user_data,
+ point_index,
+ glyph, x, y);
}
void
hb_codepoint_t glyph, hb_glyph_metrics_t *metrics)
{
memset (metrics, 0, sizeof (*metrics));
- return font->klass->get_glyph_metrics (font, face, font->user_data,
- glyph, metrics);
+ return font->klass->v.get_glyph_metrics (font, face, font->user_data,
+ glyph, metrics);
}
hb_position_t
hb_font_get_kerning (hb_font_t *font, hb_face_t *face,
hb_codepoint_t first_glyph, hb_codepoint_t second_glyph)
{
- return font->klass->get_kerning (font, face, font->user_data,
- first_glyph, second_glyph);
+ return font->klass->v.get_kerning (font, face, font->user_data,
+ first_glyph, second_glyph);
}
{
unsigned int count = buffer->len;
for (unsigned int i = 1; i < count; i++)
- if (buffer->unicode->get_general_category (buffer->info[i].codepoint) == HB_CATEGORY_NON_SPACING_MARK)
+ if (buffer->unicode->v.get_general_category (buffer->info[i].codepoint) == HB_CATEGORY_NON_SPACING_MARK)
buffer->info[i].cluster = buffer->info[i - 1].cluster;
}
static void
hb_mirror_chars (hb_buffer_t *buffer)
{
- hb_unicode_get_mirroring_func_t get_mirroring = buffer->unicode->get_mirroring;
+ hb_unicode_get_mirroring_func_t get_mirroring = buffer->unicode->v.get_mirroring;
if (HB_DIRECTION_IS_FORWARD (buffer->direction))
return;
hb_bool_t immutable;
- hb_unicode_get_general_category_func_t get_general_category;
- hb_unicode_get_combining_class_func_t get_combining_class;
- hb_unicode_get_mirroring_func_t get_mirroring;
- hb_unicode_get_script_func_t get_script;
- hb_unicode_get_eastasian_width_func_t get_eastasian_width;
+ struct {
+ hb_unicode_get_general_category_func_t get_general_category;
+ hb_unicode_get_combining_class_func_t get_combining_class;
+ hb_unicode_get_mirroring_func_t get_mirroring;
+ hb_unicode_get_script_func_t get_script;
+ hb_unicode_get_eastasian_width_func_t get_eastasian_width;
+ } v;
};
extern HB_INTERNAL hb_unicode_funcs_t _hb_unicode_funcs_nil;
TRUE, /* immutable */
- hb_unicode_get_general_category_nil,
- hb_unicode_get_combining_class_nil,
- hb_unicode_get_mirroring_nil,
- hb_unicode_get_script_nil,
- hb_unicode_get_eastasian_width_nil
+ {
+ hb_unicode_get_general_category_nil,
+ hb_unicode_get_combining_class_nil,
+ hb_unicode_get_mirroring_nil,
+ hb_unicode_get_script_nil,
+ hb_unicode_get_eastasian_width_nil
+ }
};
hb_unicode_funcs_t *
if (ufuncs->immutable)
return;
- ufuncs->get_mirroring = mirroring_func ? mirroring_func : hb_unicode_get_mirroring_nil;
+ ufuncs->v.get_mirroring = mirroring_func ? mirroring_func : hb_unicode_get_mirroring_nil;
}
void
if (ufuncs->immutable)
return;
- ufuncs->get_general_category = general_category_func ? general_category_func : hb_unicode_get_general_category_nil;
+ ufuncs->v.get_general_category = general_category_func ? general_category_func : hb_unicode_get_general_category_nil;
}
void
if (ufuncs->immutable)
return;
- ufuncs->get_script = script_func ? script_func : hb_unicode_get_script_nil;
+ ufuncs->v.get_script = script_func ? script_func : hb_unicode_get_script_nil;
}
void
if (ufuncs->immutable)
return;
- ufuncs->get_combining_class = combining_class_func ? combining_class_func : hb_unicode_get_combining_class_nil;
+ ufuncs->v.get_combining_class = combining_class_func ? combining_class_func : hb_unicode_get_combining_class_nil;
}
void
if (ufuncs->immutable)
return;
- ufuncs->get_eastasian_width = eastasian_width_func ? eastasian_width_func : hb_unicode_get_eastasian_width_nil;
+ ufuncs->v.get_eastasian_width = eastasian_width_func ? eastasian_width_func : hb_unicode_get_eastasian_width_nil;
}
hb_unicode_get_mirroring (hb_unicode_funcs_t *ufuncs,
hb_codepoint_t unicode)
{
- return ufuncs->get_mirroring (unicode);
+ return ufuncs->v.get_mirroring (unicode);
}
hb_category_t
hb_unicode_get_general_category (hb_unicode_funcs_t *ufuncs,
hb_codepoint_t unicode)
{
- return ufuncs->get_general_category (unicode);
+ return ufuncs->v.get_general_category (unicode);
}
hb_script_t
hb_unicode_get_script (hb_unicode_funcs_t *ufuncs,
hb_codepoint_t unicode)
{
- return ufuncs->get_script (unicode);
+ return ufuncs->v.get_script (unicode);
}
unsigned int
hb_unicode_get_combining_class (hb_unicode_funcs_t *ufuncs,
hb_codepoint_t unicode)
{
- return ufuncs->get_combining_class (unicode);
+ return ufuncs->v.get_combining_class (unicode);
}
unsigned int
hb_unicode_get_eastasian_width (hb_unicode_funcs_t *ufuncs,
hb_codepoint_t unicode)
{
- return ufuncs->get_eastasian_width (unicode);
+ return ufuncs->v.get_eastasian_width (unicode);
}