summaryrefslogtreecommitdiffstats
path: root/thirdparty/graphite/src/Pass.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2021-11-19 12:22:48 +0100
committerRémi Verschelde <rverschelde@gmail.com>2021-11-19 12:23:54 +0100
commitd1360895eeb4cd127f74fd80be7452c8e07b26be (patch)
tree8485bb0c674edc7d14e84950223e815f5bf47c8a /thirdparty/graphite/src/Pass.cpp
parentb452005c5cd7d4f281a288dfdcde4be2d3df4f6e (diff)
downloadredot-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.cpp9
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)