From 32d3c06b61f2f4252f4403b55c6ba07fbb572149 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Sat, 11 May 2019 11:59:18 -0700 Subject: [PATCH] Disable sbix if no-color or no-ot-font-bitmap Part of https://github.com/harfbuzz/harfbuzz/issues/1652 --- src/hb-ot-font.cc | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/hb-ot-font.cc b/src/hb-ot-font.cc index 5051fa0..f5a676b 100644 --- a/src/hb-ot-font.cc +++ b/src/hb-ot-font.cc @@ -180,19 +180,20 @@ hb_ot_get_glyph_extents (hb_font_t *font, void *user_data HB_UNUSED) { const hb_ot_face_t *ot_face = (const hb_ot_face_t *) font_data; - bool ret = ot_face->sbix->get_extents (font, glyph, extents); - if (!ret) - ret = ot_face->glyf->get_extents (glyph, extents); + bool ret = false; + +#if !defined(HB_NO_OT_FONT_BITMAP) && !defined(HB_NO_COLOR) + if (!ret) ot_face->sbix->get_extents (font, glyph, extents); +#endif + if (!ret) ret = ot_face->glyf->get_extents (glyph, extents); #ifndef HB_NO_OT_FONT_CFF - if (!ret) - ret = ot_face->cff1->get_extents (glyph, extents); - if (!ret) - ret = ot_face->cff2->get_extents (font, glyph, extents); + if (!ret) ret = ot_face->cff1->get_extents (glyph, extents); + if (!ret) ret = ot_face->cff2->get_extents (font, glyph, extents); #endif -#ifndef HB_NO_OT_FONT_BITMAP - if (!ret) - ret = ot_face->CBDT->get_extents (font, glyph, extents); +#if !defined(HB_NO_OT_FONT_BITMAP) && !defined(HB_NO_COLOR) + if (!ret) ret = ot_face->CBDT->get_extents (font, glyph, extents); #endif + // TODO Hook up side-bearings variations. extents->x_bearing = font->em_scale_x (extents->x_bearing); extents->y_bearing = font->em_scale_y (extents->y_bearing); -- 2.7.4