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 | |
parent | b452005c5cd7d4f281a288dfdcde4be2d3df4f6e (diff) |
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')
-rw-r--r-- | thirdparty/graphite/ChangeLog | 238 | ||||
-rw-r--r-- | thirdparty/graphite/src/Pass.cpp | 9 |
2 files changed, 7 insertions, 240 deletions
diff --git a/thirdparty/graphite/ChangeLog b/thirdparty/graphite/ChangeLog deleted file mode 100644 index e36110e1c1..0000000000 --- a/thirdparty/graphite/ChangeLog +++ /dev/null @@ -1,238 +0,0 @@ -1.3.14 - . Bug fixes - . Allow features to be hidden (for aliases) - . Move to python3 - . Rename doc files from .txt to .asc - -1.3.13 - . Resolve minor spacing issue in rtl non-overlap kerning - . python3 for graphite.py - . Better fuzzing - . Better building on windows - -1.3.12 - . Graphite no longer does dumb rendering for fonts with no smarts - . Segment caching code removed. Anything attempting to use the segment cache gets given a regular face instead - . Add libfuzzer support - . Builds now require C++11 - . Improvements to Windows 64 bit builds - . Support different versions of python including 32 bit and python 3 - . Various minor bug fixes - -1.3.11 - . Fixes due to security review - . Minor collision avoidance fixes - . Fix LZ4 decompressor against high compression - -1.3.10 - . Address floating point build parameters to give consistent positioning results across platforms - . Various bug fixes - -1.3.9 - . Add Collision COLL_ISSPACE to allow for visible spaces in collision avoidance - . Add segment and pass direction information to tracing output - . Bug fix rule length testing in 32-bit - . Increase slanted margin distances for collision avoidance - . Change kerning algorithm to simple outline expansion. Seems to make no visible difference. - . Add trace2svg to test tools - -1.3.8 - . Various bug fixes arising from fuzzing - . Fix regression that stopped piglatin from working - . Make collision avoidance kerning give more regular results - . Minor modification to clustering algorithm to handle variable width chars - -1.3.7 - . Bug fixes - . Start to deprecate SegCache. This will be going away in a later release. - -1.3.6 - . Bug fixes - -1.3.5 - . Bug fixes - . Security bug fix - . Fix ARM misalignment problem - . Track latest cmake - -1.3.4 - . Transition from Mercurial to Git - . Bug fixes - . Fix Collision Kerning ignoring some diacritics - . Handle pass bits 16-31 to speed up fonts with > 16 passes - . Various minor fuzz bug fixes - . Make Coverity happy - . Add GR_FALLTHROUGH macro for clang c++11 - -1.3.3 - . Slight speed up in Collision Avoidance - . Remove dead bidi code - . Bug fixes - . Between pass bidi reorderings and at the end - . Decompressor fuzz bugs - . Other fuzz bugs - -1.3.2 - . Remove full bidi. All segments are assumed to be single directioned. - . Bug fixes: - . Decompressor corner cases - . Various fuzz bugs - -1.3.1 - . Deprecation warning: Full bidi support is about to be deprecated. Make contact - if this impacts you. - . Change compression block format slightly to conform to LZ4 - . Bug fixes: - . Handle mono direction text with diacritics consistently. Fonts - now see the direction they expect consistently and bidi now - gives expected results. - . Fixed lots of fuzz bugs - . Coverity cleanups - . Build now works for clang and/or asan and/or afl etc. - -1.3.0 - . Add collision avoidance - . Shift Collider - . Kern Collider - . Octabox outlines and subboxes - . Add compressed Silf and Glat table support - . Bug fixes: - . Stop loops forming in the child, sibling tree - . Handle bidi mirroring correctly if no bidi occurring - -1.2.4 - . Face failure now has error code reporting via debug logging - . can now call gr_start_logging(NULL, fname) - . gr2fonttest --alltrace added - . Format 14 table support - . Not done. To be handled entirely in the compiler - . Bidi support for Unicode 6.3 Isolating direction controls - . Fonts no longer require a glyf/loca table. In such cases the bounding box is always 0. - . Clang ASAN build support added for testing. - . Handle out of memory sanely. - . Documentation improvements - . Bug fixes: - . Enforce fonts having to store glyph attributes by monotonically increasing attribute number - . zeropadding was not getting called on feature tags - . automatic associations for unassociated characters - . use direct engine on Mac - . various extreme case reading 1 past the end errors fixed - . remove tabs from sources so that it becomes readable again - -1.2.3 - . Bug fixes only: - . fix byte swapping when testing cmap subtable lengths - . work around armel compilation problems with conditional operators - . fix pseudoglyph support for advance and bbox - -1.2.2 - . Add support for passKeySlot (makes Charis 2x faster) up to 32 passes - . Add telemetry output to json if enabled in build GRAPHITE2_TELEMETRY - . Shrink font memory footprint particularly in the fsm - . Add -S to comparerenderer - . Bug fixes: - . Fix shift.x being reversed for rtl text - . Fix faulty fallback justification - . Fix bad cmap handling - . Support compiling on old Solaris where bidi attributes clash with register names - . Follow the crowd in using Windows.h - -1.2.1 - . Bug fixes: - . Allow glyph reattachment - . Allow signed glyph attributes - . Various build problems with MacOS, old gcc versions, etc. - . Various overrun read errors fixed - -1.2.0 - . API Changes: - . Added Windows friendly gr_start_logging and gr_stop_logging, now per face - . Added gr_make_face_with_ops, gr_make_face_with_seg_cache_and_ops - . Added gr_make_font_with_ops - . Added gr_face_is_char_supported - . Added gr_face_info to give info to apps about face capabilities - . Deprecated gr_make_face, gr_make_face_with_seg_cache, gr_make_font_with_advance_fn - . Deprecated graphite_start_logging and graphite_stop_logging - . These functions are stubbed now and do nothing, but do compile and link. - . Bump API version to 3 - . Add C# wrapper to contrib - . Handle justification information in a font and do something useful with it - . Builds clang clean (has done for a while) - . Bug fixes - . Windows build and bug fixes - . Add extra information to json debug output - . Added windows build documentation - . Added freetype sample code and test - -1.1.3 - . Default build has GRAPHITE2_COMPARE_RENDERER to OFF to reduce dependencies - . Builds on Mac with clang - . Debug output improvements - . Tidy up perl wrappers - . Fuzz tester improvements - . Various bug fixes for bad font handling - -1.1.2 - . Support feature ids < 4 chars when space padded for inclusion in FF 14. - . More fuzztesting and removal of causes of valgrind bad reads and sigabrts - . Remove contrib/android into its own repo (http://hg.palaso.org/grandroid) - . Update comparerenderer to latest harfbuzzng api - -1.1.1 - . Missing Log.h included - . perl wrappers updated - -1.1.0 - . Refactored debug output to use json - . Renamed VM_MACHINE_TYPE to GRAPHITE2_VM_TYPE - . Renamed DISABLE_SEGCACHE to GRAPHITE2_NSEGCACE - . Renamed DISBALE_FILE_FACE to GRAPHITE2_NFILEFACE - . Renamed ENABLE_COMPARE_RENDERER to GRAPHTIE2_COMPARE_RENDERER - . Renamed DOXYGEN_CONFIG to GRAPHITE2_DOXYGEN_CONFIG - . Renamed GR2_CUSTOM_HEADER to GRAPHITE2_CUSTOM_HEADER - . Renamed GR2_EXPORTING to GRAPHITE2_EXPORTING - . Added GRAPHITE2_STATIC for static only builds - . Added GRAPHITE2_NTRACING to compile out tracing code - . Documented GRAPHITE2_{EXPORTING,STATIC,NTRACING} in hacking.txt - . Bump libtool version to 2.1.0 - . dumb font rendering works - . slot user attributes are now signed rather than unsigned - . add support for long class maps - . Rename perl library to avoid nameclash on Windows - . Various robustness fixes - . Moved internal .h files into src/inc - . Parallelise fuzztest - . General build improvements, particularly on Windows - -1.0.3 - . Fix UTF16 surrogate support - . script and lang tags may be space padded or null padded - . Remove need for WORDS_BIGENDIAN, do it all automatically - . Remove all #include <new>. Use CLASS_NEW_DELETE instead. - . Fix comparerenderer to work with current hbng - . Add valgrind to fuzztest to ensure good memory use at all times - . Fix new fuzztest exposed bugs. - . Fix bugs exposed by Mozilla security review - . Add continuous integration build on Windows support - -1.0.2 - . Fix Windows build - . Comparerenderer uses hbng enforcing ot rendering - . Add Bidi .hasChar support and refactor mirroring code - . Make cmake default Release rather than debug - . Don't compile in a boat load of TtfUtil that isn't used, saving 15% of binary - . Chase the FSF around its latest office moves - . WORDS_BIGENDIAN is set at the top so tests now pass on ppc, etc. - . More words in the manual - -1.0.1 - . Release is the default build in cmake now. - . Refactor cmake build to not rebuild things so much. - . Include a missing file - . Remove -nostdlibs, making gcc happy everywhere - . Update comparerenderer to latest hbng interface - . Add changelog - -1.0.0 - . First major release of perfect code! - 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) |