Minor reshaping of hb_font_funcs_t implementation
In anticipation of further changes. No functional changes.
This commit is contained in:
parent
a6a7715bac
commit
88e9a9bcae
|
@ -63,10 +63,12 @@ struct hb_font_funcs_t {
|
||||||
|
|
||||||
/* Don't access these directly. Call font->get_*() instead. */
|
/* Don't access these directly. Call font->get_*() instead. */
|
||||||
|
|
||||||
|
union {
|
||||||
struct {
|
struct {
|
||||||
#define HB_FONT_FUNC_IMPLEMENT(name) hb_font_get_##name##_func_t name;
|
#define HB_FONT_FUNC_IMPLEMENT(name) hb_font_get_##name##_func_t name;
|
||||||
HB_FONT_FUNCS_IMPLEMENT_CALLBACKS
|
HB_FONT_FUNCS_IMPLEMENT_CALLBACKS
|
||||||
#undef HB_FONT_FUNC_IMPLEMENT
|
#undef HB_FONT_FUNC_IMPLEMENT
|
||||||
|
} f;
|
||||||
} get;
|
} get;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
@ -154,21 +156,21 @@ struct hb_font_t {
|
||||||
hb_codepoint_t *glyph)
|
hb_codepoint_t *glyph)
|
||||||
{
|
{
|
||||||
*glyph = 0;
|
*glyph = 0;
|
||||||
return klass->get.glyph (this, user_data,
|
return klass->get.f.glyph (this, user_data,
|
||||||
unicode, variation_selector, glyph,
|
unicode, variation_selector, glyph,
|
||||||
klass->user_data.glyph);
|
klass->user_data.glyph);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline hb_position_t get_glyph_h_advance (hb_codepoint_t glyph)
|
inline hb_position_t get_glyph_h_advance (hb_codepoint_t glyph)
|
||||||
{
|
{
|
||||||
return klass->get.glyph_h_advance (this, user_data,
|
return klass->get.f.glyph_h_advance (this, user_data,
|
||||||
glyph,
|
glyph,
|
||||||
klass->user_data.glyph_h_advance);
|
klass->user_data.glyph_h_advance);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline hb_position_t get_glyph_v_advance (hb_codepoint_t glyph)
|
inline hb_position_t get_glyph_v_advance (hb_codepoint_t glyph)
|
||||||
{
|
{
|
||||||
return klass->get.glyph_v_advance (this, user_data,
|
return klass->get.f.glyph_v_advance (this, user_data,
|
||||||
glyph,
|
glyph,
|
||||||
klass->user_data.glyph_v_advance);
|
klass->user_data.glyph_v_advance);
|
||||||
}
|
}
|
||||||
|
@ -177,7 +179,7 @@ struct hb_font_t {
|
||||||
hb_position_t *x, hb_position_t *y)
|
hb_position_t *x, hb_position_t *y)
|
||||||
{
|
{
|
||||||
*x = *y = 0;
|
*x = *y = 0;
|
||||||
return klass->get.glyph_h_origin (this, user_data,
|
return klass->get.f.glyph_h_origin (this, user_data,
|
||||||
glyph, x, y,
|
glyph, x, y,
|
||||||
klass->user_data.glyph_h_origin);
|
klass->user_data.glyph_h_origin);
|
||||||
}
|
}
|
||||||
|
@ -186,21 +188,21 @@ struct hb_font_t {
|
||||||
hb_position_t *x, hb_position_t *y)
|
hb_position_t *x, hb_position_t *y)
|
||||||
{
|
{
|
||||||
*x = *y = 0;
|
*x = *y = 0;
|
||||||
return klass->get.glyph_v_origin (this, user_data,
|
return klass->get.f.glyph_v_origin (this, user_data,
|
||||||
glyph, x, y,
|
glyph, x, y,
|
||||||
klass->user_data.glyph_v_origin);
|
klass->user_data.glyph_v_origin);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline hb_position_t get_glyph_h_kerning (hb_codepoint_t left_glyph, hb_codepoint_t right_glyph)
|
inline hb_position_t get_glyph_h_kerning (hb_codepoint_t left_glyph, hb_codepoint_t right_glyph)
|
||||||
{
|
{
|
||||||
return klass->get.glyph_h_kerning (this, user_data,
|
return klass->get.f.glyph_h_kerning (this, user_data,
|
||||||
left_glyph, right_glyph,
|
left_glyph, right_glyph,
|
||||||
klass->user_data.glyph_h_kerning);
|
klass->user_data.glyph_h_kerning);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline hb_position_t get_glyph_v_kerning (hb_codepoint_t top_glyph, hb_codepoint_t bottom_glyph)
|
inline hb_position_t get_glyph_v_kerning (hb_codepoint_t top_glyph, hb_codepoint_t bottom_glyph)
|
||||||
{
|
{
|
||||||
return klass->get.glyph_v_kerning (this, user_data,
|
return klass->get.f.glyph_v_kerning (this, user_data,
|
||||||
top_glyph, bottom_glyph,
|
top_glyph, bottom_glyph,
|
||||||
klass->user_data.glyph_v_kerning);
|
klass->user_data.glyph_v_kerning);
|
||||||
}
|
}
|
||||||
|
@ -209,7 +211,7 @@ struct hb_font_t {
|
||||||
hb_glyph_extents_t *extents)
|
hb_glyph_extents_t *extents)
|
||||||
{
|
{
|
||||||
memset (extents, 0, sizeof (*extents));
|
memset (extents, 0, sizeof (*extents));
|
||||||
return klass->get.glyph_extents (this, user_data,
|
return klass->get.f.glyph_extents (this, user_data,
|
||||||
glyph,
|
glyph,
|
||||||
extents,
|
extents,
|
||||||
klass->user_data.glyph_extents);
|
klass->user_data.glyph_extents);
|
||||||
|
@ -219,7 +221,7 @@ struct hb_font_t {
|
||||||
hb_position_t *x, hb_position_t *y)
|
hb_position_t *x, hb_position_t *y)
|
||||||
{
|
{
|
||||||
*x = *y = 0;
|
*x = *y = 0;
|
||||||
return klass->get.glyph_contour_point (this, user_data,
|
return klass->get.f.glyph_contour_point (this, user_data,
|
||||||
glyph, point_index,
|
glyph, point_index,
|
||||||
x, y,
|
x, y,
|
||||||
klass->user_data.glyph_contour_point);
|
klass->user_data.glyph_contour_point);
|
||||||
|
@ -229,7 +231,7 @@ struct hb_font_t {
|
||||||
char *name, unsigned int size)
|
char *name, unsigned int size)
|
||||||
{
|
{
|
||||||
if (size) *name = '\0';
|
if (size) *name = '\0';
|
||||||
return klass->get.glyph_name (this, user_data,
|
return klass->get.f.glyph_name (this, user_data,
|
||||||
glyph,
|
glyph,
|
||||||
name, size,
|
name, size,
|
||||||
klass->user_data.glyph_name);
|
klass->user_data.glyph_name);
|
||||||
|
@ -240,7 +242,7 @@ struct hb_font_t {
|
||||||
{
|
{
|
||||||
*glyph = 0;
|
*glyph = 0;
|
||||||
if (len == -1) len = strlen (name);
|
if (len == -1) len = strlen (name);
|
||||||
return klass->get.glyph_from_name (this, user_data,
|
return klass->get.f.glyph_from_name (this, user_data,
|
||||||
name, len,
|
name, len,
|
||||||
glyph,
|
glyph,
|
||||||
klass->user_data.glyph_from_name);
|
klass->user_data.glyph_from_name);
|
||||||
|
|
|
@ -474,11 +474,11 @@ hb_font_funcs_set_##name##_func (hb_font_funcs_t *ffuncs, \
|
||||||
ffuncs->destroy.name (ffuncs->user_data.name); \
|
ffuncs->destroy.name (ffuncs->user_data.name); \
|
||||||
\
|
\
|
||||||
if (func) { \
|
if (func) { \
|
||||||
ffuncs->get.name = func; \
|
ffuncs->get.f.name = func; \
|
||||||
ffuncs->user_data.name = user_data; \
|
ffuncs->user_data.name = user_data; \
|
||||||
ffuncs->destroy.name = destroy; \
|
ffuncs->destroy.name = destroy; \
|
||||||
} else { \
|
} else { \
|
||||||
ffuncs->get.name = hb_font_get_##name##_parent; \
|
ffuncs->get.f.name = hb_font_get_##name##_parent; \
|
||||||
ffuncs->user_data.name = NULL; \
|
ffuncs->user_data.name = NULL; \
|
||||||
ffuncs->destroy.name = NULL; \
|
ffuncs->destroy.name = NULL; \
|
||||||
} \
|
} \
|
||||||
|
|
Loading…
Reference in New Issue