Commit Graph

12948 Commits

Author SHA1 Message Date
Qunxin Liu 7cb002cb58 [subset] bug fix in prune_langsys
we should not cache visited langsys cause 2 different Record<Langsys>
could have different Tag while pointing to the same Langsys, a langsys
is redundant in Record<Langsys> A does not mean it's redundant in Record
B. Same thing for visited_script.
Also adding the number of features in the LangSys's feature list to the
visited langsys count so it's more accurate.
Plus some improvement in langsys compare()
2022-03-16 13:08:13 -06:00
Behdad Esfahbod cad2fe8e63 [baseline] Fix HB_NO_METRICS build
Fixes https://github.com/harfbuzz/harfbuzz/issues/3482
2022-03-15 10:49:29 -06:00
Behdad Esfahbod a8a89b80b4 [layout] Whitespace 2022-03-15 10:48:03 -06:00
Behdad Esfahbod 21f5ef56f5 [metrics] Simplify x-height fallback 2022-03-15 10:45:50 -06:00
Behdad Esfahbod 6bf8f0a38f [baseline] Use ot-metrics fallback API 2022-03-15 10:44:41 -06:00
Dominik Röttsches 965cf1d665 Make load_num_glyphs_from_loca conditional on HB_NO_BORING_EXPANSION
Fixes build errors complaining about this function being unused.
2022-03-14 15:16:35 +02:00
David Corbett 49fb8f9072 [USE] Treat visible viramas like dependent vowels 2022-03-13 14:45:27 -06:00
Khaled Hosny 1f79ba9407 4.0.1 2022-03-11 20:19:04 +02:00
Khaled Hosny a34eea3013 [doc] Add experimental repacker API to private section
Hides the warning about them until they are no longer experimental.
2022-03-11 19:57:53 +02:00
Qunxin Liu a35757c6bc [repacker] expose hb_subset_repack() API, hb_object_t and hb_link_t structs 2022-03-10 17:26:20 -07:00
Matthias Clasen e7ab42b246 [layout] Fix handling of baseline variations
For BASE table format 1.1, the handling of design
space vs user space coordinates was inconsistent.
We were applying design -> user transformation
twice for the deltas, leading to wrong baseline
values.

Patch by Ebrahim Byagowi <ebrahim@gnu.org>

Fixes: #3476
2022-03-10 09:29:56 -07:00
David Corbett e5707a440c Update IANA Language Subtag Registry to 2022-03-02 2022-03-08 13:28:25 -07:00
David Corbett 13bb46cfd5 [USE] Remove obsolete overrides 2022-03-06 16:04:18 -07:00
David Corbett c33468d48e [USE] Treat all gc=Cn as independent clusters 2022-03-06 10:44:37 -07:00
David Corbett e497a8f142 [USE] Remove obsolete symbol/punctuation overrides 2022-03-06 10:44:37 -07:00
David Corbett 854219e056 [USE] Simplify `not_ccs_default_ignorable` 2022-03-06 10:44:37 -07:00
David Corbett 6e059a46b7 [USE] Allow any non-numeric tail in symbol cluster 2022-03-06 10:44:37 -07:00
David Corbett 5b0a59812d [USE] Restore the category WJ 2022-03-06 10:44:37 -07:00
Florian Pircher 05b3bdb0b3 [aat] Update OT to AAT mappings for hist and vrtr 2022-03-05 20:36:40 -07:00
Khaled Hosny 4302466481
Merge pull request #3464 from luzpaz/typos
Fixed various misc. typos
2022-03-06 05:24:35 +02:00
luz paz cf3a0f7ab5 Fixed various misc. typos
Found via `codespell -q 3 -S ./perf/texts -L actualy,als,ba,beng,clen,crasher,dependant,eachother,fo,gir,inout,ist,nd,ned,ot,pres,ro,statics,te,teh,timne`
2022-03-06 04:59:24 +02:00
Khaled Hosny 756395270d Minor [ci skip] 2022-03-02 12:56:33 +02:00
Khaled Hosny 8d1b000a3e 4.0.0 2022-03-01 21:27:32 +02:00
Khaled Hosny 6e466256e4 [doc] Typo 2022-03-01 12:01:18 +02:00
Garret Rieger f6071c16b0
[subset] Rename codepoint -> unicode in subset plan api 2022-02-28 23:45:40 +02:00
Khaled Hosny 1b5a2e0809 [doc] Various fixes to newly added documentation 2022-02-28 10:11:42 -07:00
Khaled Hosny 924dd71de3
Merge pull request #3423 from harfbuzz/revert-ci-msvc
Revert "[ci] Downgrade pip on MSVC jobs"
2022-02-25 04:31:24 +02:00
Behdad Esfahbod 222301bfa4
Merge pull request #3429 from harfbuzz/external_plan
[subset] expose subset plan in public subsetting API
2022-02-24 12:55:01 -07:00
Khaled Hosny 78f3d7f0a8
Merge pull request #3459 from jameshilliard/icu-defs-mutliarg
[meson] handle multiple element ICU DEFS
2022-02-21 18:21:03 +02:00
James Hilliard 256dcde149 [meson] handle multiple element ICU DEFS 2022-02-21 00:07:03 -07:00
Matthias Clasen d4cb07728c Add a missing file
The style test is using notosansitalic.ttf now,
but I forgot to add it with the test. Fix that.
2022-02-18 18:27:02 -06:00
Behdad Esfahbod 651c280d0b [style] Move the negation into the constant 2022-02-18 18:21:46 -06:00
Matthias Clasen 16b232be0e [hb-style] Fix the sign of slant ratios
We want negative slant angles to yield
positive slant ratios. Fix that.

Test included.
2022-02-18 18:10:34 -06:00
Matthias Clasen e76061a737 [hb-style] Fix synthetic slant values
When reporting the slant ratio of a font
that has synthetic slant set, we were
reporting twice the expected value.
Fix that. Test included.
2022-02-18 17:53:54 -06:00
Behdad Esfahbod 56f11ec938 [buffer] Add HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT
Fixes https://github.com/harfbuzz/harfbuzz/issues/3454
2022-02-18 17:52:27 -06:00
Behdad Esfahbod c0b2f50c0b [util] Rename template typenames to avoid clashing with actual types
Apparently MSVC2015 can confuse them

Fixes https://github.com/harfbuzz/harfbuzz/issues/3379
2022-02-18 12:29:14 -06:00
Garret Rieger fc1548cf71 [subset] document return values. 2022-02-17 17:16:31 -08:00
Matthias Clasen f6efe34f5e [ot-metrics] Synthesize missing metrics
Add a variant of hb_ot_metrics_get_position that
synthesizes missing values.

New api: hb_ot_metrics_get_position_with_fallback
2022-02-17 18:34:59 -06:00
Behdad Esfahbod f8e9e315bb
Merge pull request #3437 from matthiasclasen/synthesize-missing-baselines
[BASE] Synthesize missing baselines
2022-02-17 14:34:46 -06:00
Behdad Esfahbod 8e900f2cda Revert "hb-algs.hh: Fix build on Visual Studio 2015"
This reverts commit 52c536bb8d.

See https://github.com/harfbuzz/harfbuzz/pull/3448
2022-02-17 13:29:04 -06:00
Khaled Hosny da801cdee1
Merge pull request #3449 from fanc999/msvc-meson-use-cmake
Meson: Use CMake more to find dependencies on Windows
2022-02-17 13:30:40 +02:00
Chun-wei Fan e6aa4b7d0e BUILD.md: Mention that installing CMake is recommended for MSVC
We are using CMake to help us find dependencies in Meson builds on Visual
Studio, so let people know that it's recommended.
2022-02-17 16:21:22 +08:00
Chun-wei Fan d24ac4aac3 freetype2.wrap: Provide fallback for CMake dep as well
Add a freetype identifier in the 'provides' section so that the fallback will
kick in if FreeType is requested but was not found, and wrap mode is not
disabled.
2022-02-17 16:21:22 +08:00
Chun-wei Fan f0573d8462 meson: Clean up finding ICU-UC on Visual Studio
Nowadays Meson has much better CMake support which we can use to find
dependencies on Visual Studio builds (and Visual Studio 2017 and later provides
CMake as an optional install item), so we can use it to help us find ICU-UC
on Visual Studio builds, since CMake has built-in support for finding it by
the components we need for some time.
2022-02-17 15:06:49 +08:00
Chun-wei Fan 561e8ba887 meson: Cleanup finding FreeType on Visual Studio
Nowadays, CMake is much better supported with Meson and is a common tool on
Windows (it is even an optionally-installed item for Visual Studio 2017+), so
make use of that to find FreeType.  The package to search for, however, is
`freetype` instead of `freetype2`.
2022-02-17 14:19:35 +08:00
Matthias Clasen 95bb2ff719 [ot-layout] Add central baselines
Add HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL
and HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_CENTRAL
which are the centers of the ideographic em-box
and face box.
2022-02-16 17:37:35 -06:00
Matthias Clasen f81578fd86 [ot-layout] Synthesize missing baselines
Add a variation of hb_ot_layout_get_baseline that
synthesizes missing baselines, using heuristics in part
taken from the CSS Inline Layout Module, Level 3.

Includes some new tests for synthesized baselines.
The base2.ttf is a subset of Noto Sans Bengali that
includes just the Bengali Ka.

New API: hb_ot_layout_get_baseline_with_fallback
2022-02-16 17:37:33 -06:00
Behdad Esfahbod 5de67c8961 [ot-layout] Remove commented-out prototypes
Not gonna happen.
2022-02-16 17:08:19 -06:00
Behdad Esfahbod d2998faad3
Merge pull request #3410 from harfbuzz/boring-expansion
[Boring Expansion] >64k loca & hmtx tables

This does two things:

The num-glyphs reported by the face now is the maximum reported by the maxp and that deduced from the length of the loca table; I think this is the right thing to do anyway; According to OpenType such loca tables are invalid.

The interpretation hmtx tables that have excessive bytes at the end, again, invalid according to OpenType, has changed. Previously we were interpreting those excessive bytes as extra lsb values. Now we interpret them as extra advance values, the last of which is repeated for all missing glyphs. Again, these are tables that are invalid according to OpenType, and the advances are for glyph indices beyond maxp table's num-glyphs.

The combined effect is that the font can have shapes and advances for gid's beyond the maxp limit of 64k. In fact, maxp table becomes optional.
2022-02-16 14:37:09 -06:00
Behdad Esfahbod 98079109e6 [ot-layout] Add +hb_ot_layout_get_horizontal_baseline_tag_for_script()
New API:
+hb_ot_layout_get_horizontal_baseline_tag_for_script()
2022-02-16 13:54:22 -06:00