Merge pull request #55118 from akien-mga/graphite-80c52493e

This commit is contained in:
Rémi Verschelde 2021-11-20 10:46:06 +01:00 committed by GitHub
commit 882d61791b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 244 deletions

View file

@ -176,14 +176,14 @@ Files extracted from upstream source:
## graphite
- Upstream: https://github.com/silnrsi/graphite
- Version: 1.3.14 (92f59dcc52f73ce747f1cdc831579ed2546884aa, 2020)
- Version: 1.3.14 (80c52493ef42e6fe605a69dcddd2a691cd8a1380, 2021)
- License: MPL-2.0
Files extracted from upstream source:
- the `include` folder
- the `src` folder
- `COPYING`, `ChangeLog`
- the `src` folder (minus `CMakeLists.txt` and `files.mk`)
- `COPYING`
## harfbuzz
@ -610,7 +610,7 @@ instead of `miniz.h` as an external dependency.
## vhacd
- Upstream: https://github.com/kmammou/v-hacd
- Version: git (b07958e18e01d504e3af80eeaeb9f033226533d7, 2019)
- Version: git (1a49edf29c69039df15286181f2f27e17ceb9aef, 2020)
- License: BSD-3-Clause
Files extracted from upstream source:

View file

@ -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!

View file

@ -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)