From 392463bff591fd0cec2ea2476b30427251f7c9f4 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Thu, 22 Dec 2022 08:34:01 -0700 Subject: [PATCH] [cff] Fix extent rounding I broke it in b0abbfd8684e9970ed2cac78781643edb7cce0ae. --- src/hb-ot-cff1-table.cc | 8 ++++---- src/hb-ot-cff2-table.cc | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/hb-ot-cff1-table.cc b/src/hb-ot-cff1-table.cc index 49c330f09..c2fb26547 100644 --- a/src/hb-ot-cff1-table.cc +++ b/src/hb-ot-cff1-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); diff --git a/src/hb-ot-cff2-table.cc b/src/hb-ot-cff2-table.cc index 4d2dcd03f..d530fc2ee 100644 --- a/src/hb-ot-cff2-table.cc +++ b/src/hb-ot-cff2-table.cc @@ -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);