[cff] Fix extent rounding

I broke it in b0abbfd868.
pull/3972/head
Behdad Esfahbod 2 years ago
parent 897c102703
commit 392463bff5
  1. 8
      src/hb-ot-cff1-table.cc
  2. 8
      src/hb-ot-cff2-table.cc

@ -422,8 +422,8 @@ bool OT::cff1::accelerator_t::get_extents (hb_font_t *font, hb_codepoint_t glyph
}
else
{
extents->x_bearing = bounds.min.x.to_int ();
extents->width = bounds.max.x.to_int () - extents->x_bearing;
extents->x_bearing = roundf (bounds.min.x.to_real ());
extents->width = roundf (bounds.max.x.to_real () - extents->x_bearing);
}
if (bounds.min.y >= bounds.max.y)
{
@ -432,8 +432,8 @@ bool OT::cff1::accelerator_t::get_extents (hb_font_t *font, hb_codepoint_t glyph
}
else
{
extents->y_bearing = bounds.max.y.to_int ();
extents->height = bounds.min.y.to_int () - extents->y_bearing;
extents->y_bearing = roundf (bounds.max.y.to_real ());
extents->height = roundf (bounds.min.y.to_real () - extents->y_bearing);
}
font->scale_glyph_extents (extents);

@ -124,8 +124,8 @@ bool OT::cff2::accelerator_t::get_extents (hb_font_t *font,
}
else
{
extents->x_bearing = param.min_x.to_int ();
extents->width = param.max_x.to_int () - extents->x_bearing;
extents->x_bearing = roundf (param.min_x.to_real ());
extents->width = roundf (param.max_x.to_real () - extents->x_bearing);
}
if (param.min_y >= param.max_y)
{
@ -134,8 +134,8 @@ bool OT::cff2::accelerator_t::get_extents (hb_font_t *font,
}
else
{
extents->y_bearing = param.max_y.to_int ();
extents->height = param.min_y.to_int () - extents->y_bearing;
extents->y_bearing = roundf (param.max_y.to_real ());
extents->height = roundf (param.min_y.to_real () - extents->y_bearing);
}
font->scale_glyph_extents (extents);

Loading…
Cancel
Save