[glyf][gvar] Make HB_NO_VAR buildable
This commit is contained in:
parent
8e33510343
commit
5752863640
|
@ -315,6 +315,7 @@ hb_ot_font_set_funcs (hb_font_t *font)
|
||||||
nullptr);
|
nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef HB_NO_VAR
|
||||||
int
|
int
|
||||||
hb_ot_get_side_bearing_var_tt (hb_font_t *font, hb_codepoint_t glyph, bool is_vertical)
|
hb_ot_get_side_bearing_var_tt (hb_font_t *font, hb_codepoint_t glyph, bool is_vertical)
|
||||||
{
|
{
|
||||||
|
@ -326,6 +327,7 @@ hb_ot_get_advance_var_tt (hb_font_t *font, hb_codepoint_t glyph, bool is_vertica
|
||||||
{
|
{
|
||||||
return font->face->table.glyf->get_advance_var (glyph, font->coords, font->num_coords, is_vertical);
|
return font->face->table.glyf->get_advance_var (glyph, font->coords, font->num_coords, is_vertical);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -726,6 +726,7 @@ struct glyf
|
||||||
contour_point_t max;
|
contour_point_t max;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef HB_NO_VAR
|
||||||
/* Note: Recursively calls itself.
|
/* Note: Recursively calls itself.
|
||||||
* all_points includes phantom points
|
* all_points includes phantom points
|
||||||
*/
|
*/
|
||||||
|
@ -855,6 +856,7 @@ struct glyf
|
||||||
const int *coords, unsigned int coord_count,
|
const int *coords, unsigned int coord_count,
|
||||||
hb_glyph_extents_t *extents) const
|
hb_glyph_extents_t *extents) const
|
||||||
{ return get_var_extents_and_phantoms (glyph, coords, coord_count, extents); }
|
{ return get_var_extents_and_phantoms (glyph, coords, coord_count, extents); }
|
||||||
|
#endif
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/* based on FontTools _g_l_y_f.py::trim */
|
/* based on FontTools _g_l_y_f.py::trim */
|
||||||
|
@ -1015,6 +1017,7 @@ struct glyf
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef HB_NO_VAR
|
||||||
unsigned int get_advance_var (hb_codepoint_t glyph,
|
unsigned int get_advance_var (hb_codepoint_t glyph,
|
||||||
const int *coords, unsigned int coord_count,
|
const int *coords, unsigned int coord_count,
|
||||||
bool vertical) const
|
bool vertical) const
|
||||||
|
@ -1046,13 +1049,16 @@ struct glyf
|
||||||
|
|
||||||
return vertical ? ceil (phantoms[PHANTOM_TOP].y) - extents.y_bearing : floor (phantoms[PHANTOM_LEFT].x);
|
return vertical ? ceil (phantoms[PHANTOM_TOP].y) - extents.y_bearing : floor (phantoms[PHANTOM_LEFT].x);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
bool get_extents (hb_font_t *font, hb_codepoint_t glyph, hb_glyph_extents_t *extents) const
|
bool get_extents (hb_font_t *font, hb_codepoint_t glyph, hb_glyph_extents_t *extents) const
|
||||||
{
|
{
|
||||||
|
#ifndef HB_NO_VAR
|
||||||
unsigned int coord_count;
|
unsigned int coord_count;
|
||||||
const int *coords = hb_font_get_var_coords_normalized (font, &coord_count);
|
const int *coords = hb_font_get_var_coords_normalized (font, &coord_count);
|
||||||
if (coords && coord_count > 0 && coord_count == face->table.gvar->get_axis_count ())
|
if (coords && coord_count > 0 && coord_count == face->table.gvar->get_axis_count ())
|
||||||
return get_extents_var (glyph, coords, coord_count, extents);
|
return get_extents_var (glyph, coords, coord_count, extents);
|
||||||
|
#endif
|
||||||
|
|
||||||
unsigned int start_offset, end_offset;
|
unsigned int start_offset, end_offset;
|
||||||
if (!get_offsets (glyph, &start_offset, &end_offset))
|
if (!get_offsets (glyph, &start_offset, &end_offset))
|
||||||
|
|
|
@ -211,6 +211,7 @@ struct hmtxvmtx
|
||||||
{
|
{
|
||||||
int side_bearing = get_side_bearing (glyph);
|
int side_bearing = get_side_bearing (glyph);
|
||||||
|
|
||||||
|
#ifndef HB_NO_VAR
|
||||||
if (unlikely (glyph >= num_metrics) || !font->num_coords)
|
if (unlikely (glyph >= num_metrics) || !font->num_coords)
|
||||||
return side_bearing;
|
return side_bearing;
|
||||||
|
|
||||||
|
@ -218,6 +219,9 @@ struct hmtxvmtx
|
||||||
return hb_ot_get_side_bearing_var_tt (font, glyph, T::tableTag == HB_OT_TAG_vmtx);
|
return hb_ot_get_side_bearing_var_tt (font, glyph, T::tableTag == HB_OT_TAG_vmtx);
|
||||||
|
|
||||||
return side_bearing + var_table->get_side_bearing_var (glyph, font->coords, font->num_coords); // TODO Optimize?!
|
return side_bearing + var_table->get_side_bearing_var (glyph, font->coords, font->num_coords); // TODO Optimize?!
|
||||||
|
#else
|
||||||
|
return side_bearing;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int get_advance (hb_codepoint_t glyph) const
|
unsigned int get_advance (hb_codepoint_t glyph) const
|
||||||
|
@ -241,6 +245,7 @@ struct hmtxvmtx
|
||||||
{
|
{
|
||||||
unsigned int advance = get_advance (glyph);
|
unsigned int advance = get_advance (glyph);
|
||||||
|
|
||||||
|
#ifndef HB_NO_VAR
|
||||||
if (unlikely (glyph >= num_metrics) || !font->num_coords)
|
if (unlikely (glyph >= num_metrics) || !font->num_coords)
|
||||||
return advance;
|
return advance;
|
||||||
|
|
||||||
|
@ -248,6 +253,9 @@ struct hmtxvmtx
|
||||||
return hb_ot_get_advance_var_tt (font, glyph, T::tableTag == HB_OT_TAG_vmtx);
|
return hb_ot_get_advance_var_tt (font, glyph, T::tableTag == HB_OT_TAG_vmtx);
|
||||||
|
|
||||||
return advance + roundf (var_table->get_advance_var (glyph, font->coords, font->num_coords)); // TODO Optimize?!
|
return advance + roundf (var_table->get_advance_var (glyph, font->coords, font->num_coords)); // TODO Optimize?!
|
||||||
|
#else
|
||||||
|
return advance;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int num_advances_for_subset (const hb_subset_plan_t *plan) const
|
unsigned int num_advances_for_subset (const hb_subset_plan_t *plan) const
|
||||||
|
|
Loading…
Reference in New Issue