diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2021-11-19 12:22:48 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2021-11-19 12:23:54 +0100 |
commit | d1360895eeb4cd127f74fd80be7452c8e07b26be (patch) | |
tree | 8485bb0c674edc7d14e84950223e815f5bf47c8a /thirdparty/graphite/src/Pass.cpp | |
parent | b452005c5cd7d4f281a288dfdcde4be2d3df4f6e (diff) | |
download | redot-engine-d1360895eeb4cd127f74fd80be7452c8e07b26be.tar.gz |
graphite: Update to upstream commit 80c52493e
https://github.com/silnrsi/graphite/commit/80c52493ef42e6fe605a69dcddd2a691cd8a1380
Includes a fix for inaccurate slice range calculation for bases with diacritics.
Also removes unnecessary ChangeLog, and updated unrelated vhacd commit to match
currently used one.
Diffstat (limited to 'thirdparty/graphite/src/Pass.cpp')
-rw-r--r-- | thirdparty/graphite/src/Pass.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/thirdparty/graphite/src/Pass.cpp b/thirdparty/graphite/src/Pass.cpp index db31c22d46..47ae2064f7 100644 --- a/thirdparty/graphite/src/Pass.cpp +++ b/thirdparty/graphite/src/Pass.cpp @@ -1056,12 +1056,17 @@ float Pass::resolveKern(Segment *seg, Slot *slotFix, GR_MAYBE_UNUSED Slot *start ymin = min(by + bbb.bl.y, ymin); for (nbor = slotFix->next(); nbor; nbor = nbor->next()) { - if (nbor->isChildOf(base)) - continue; if (!gc.check(nbor->gid())) return 0.; const Rect &bb = seg->theGlyphBBoxTemporary(nbor->gid()); SlotCollision *cNbor = seg->collisionInfo(nbor); + const float nby = nbor->origin().y + cNbor->shift().y; + if (nbor->isChildOf(base)) + { + ymax = max(nby + bb.tr.y, ymax); + ymin = min(nby + bb.bl.y, ymin); + continue; + } if ((bb.bl.y == 0.f && bb.tr.y == 0.f) || (cNbor->flags() & SlotCollision::COLL_ISSPACE)) { if (m_kernColls == InWord) |