Behdad Esfahbod
684c8fcea7
[>64k:layout] Templatize MultipleSubst
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
8775e9b4a4
[>64k:layout:SingleSubst] Implement format 3/4
...
Implements https://github.com/be-fonts/boring-expansion-spec/issues/31
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
e3caf8d50a
[>64k:layout] Templatize SingleSubst
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
ca5c8a6419
[>64k:layout:Coverage] Implement format 3/4
...
Implements rest of https://github.com/be-fonts/boring-expansion-spec/issues/30
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
25de6fb4e7
[>64k:layout:ClassDef] Implement format 3/4
...
This implements part of https://github.com/be-fonts/boring-expansion-spec/issues/30
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
9286526f37
[>64k:layout] Templatize Coverage & ClassDef
...
Have not added new formats yet.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
e8cce9d1b3
[>64k:layout] Add SmallTypes & MediumTypes
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
d8f9d51780
[hashmap] Add keys_ref() and values_ref()
2022-07-12 13:19:31 -06:00
Behdad Esfahbod
cddcb31065
[vector] Remove residual nullptr_t from when hashmap needed it
2022-07-12 13:15:38 -06:00
Behdad Esfahbod
46a36771f4
[draw] Fix leak from e0a5231657
2022-07-12 12:03:00 -06:00
Behdad Esfahbod
f8544cbfc0
[draw] Fix regression from e0a5231657
2022-07-12 11:52:33 -06:00
Behdad Esfahbod
d15041be7d
[GSUB/GPOS] Trace toplevel sanitize
2022-07-12 11:11:22 -06:00
Behdad Esfahbod
7c4e9080c0
[sanitize] Minor trace format fixup
...
This likely() is unlikely to make a difference, and obscures
the return_trace() message by writing out "something" instead
of the true/false value.
2022-07-11 21:52:41 -06:00
Matthias Clasen
d826a5920c
docs: Clarify 0xFFFF as palette index
...
Mention that a palette index of 0xFFFF
means to use the foreground color.
2022-07-10 11:08:52 -06:00
Behdad Esfahbod
6d051f4018
[layout] Simplify StructAfter<> usage
2022-07-08 14:09:04 -06:00
Behdad Esfahbod
5192294f83
.
2022-07-08 14:09:04 -06:00
Garret Rieger
29f149c16c
[subset] cache sanitized tables in subset plan to avoid sanitizing tables multiple times.
2022-07-08 13:42:38 -06:00
Behdad Esfahbod
8b349e1139
[gsubgpos] Remove HBUINT16 from match functions signatures
2022-07-08 12:05:01 -06:00
Behdad Esfahbod
f114b18c58
[gsubgpos] Break skippy_iter set_match_func into two
2022-07-08 12:04:14 -06:00
Behdad Esfahbod
8a107125a5
[layout] Make SubstLookup:serialize_single take iterators
2022-07-08 12:02:11 -06:00
Behdad Esfahbod
8a971d01e9
[layout] Use is_source_of instead of is_iterator
2022-07-08 12:01:48 -06:00
Behdad Esfahbod
0dc0da054d
[iter] Add hb_is_sorted_iterator(_of)
2022-07-08 12:01:38 -06:00
Behdad Esfahbod
2c67261723
[open-type] Add HBGlyph24
2022-07-08 12:01:26 -06:00
Behdad Esfahbod
7cfe7fe651
[null] Change null bytes for RangeRecord
...
Should be harmless.
2022-07-08 12:01:18 -06:00
Behdad Esfahbod
486555c691
[open-type] Add Array24Of<> and SortedArray24Of<>
2022-07-08 12:01:07 -06:00
Behdad Esfahbod
1e503f587b
[null] Add DECLARE_NULL_NAMESPACE_BYTES_TEMPLATE1
2022-07-08 12:00:53 -06:00
Behdad Esfahbod
ea11029a6e
[GPOS] Split LigatureArray.hh
2022-07-08 11:58:43 -06:00
Behdad Esfahbod
68b2742fe4
[GPOS] Move code around
2022-07-07 16:11:15 -06:00
Behdad Esfahbod
6a3043a0c1
Fix tests
2022-07-07 14:51:37 -06:00
Behdad Esfahbod
aa68657434
[Makefile.sources/meson.build] Sort file names
2022-07-07 14:07:45 -06:00
Behdad Esfahbod
0b0e3b30ce
[GPOS] Break down PairPosFormat1 into new layout
2022-07-07 14:06:44 -06:00
Garret Rieger
6fad6b4113
[repacker] add tests for special casing of 24bit offsets.
2022-07-06 19:18:27 +00:00
Garret Rieger
b4f561dbbf
[subset] Add some comments to find_space_roots/find_32_bit_roots methods.
2022-07-06 18:49:23 +00:00
Garret Rieger
401066bf3d
[subset] Prepare the repacker for handling 24bit offsets in GSUB/GPOS.
...
The boring expansion (https://github.com/be-fonts/boring-expansion-spec ) plans to introduce 24bit offsets into GSUB/GPOS. This changes the repacker to treat 24 bit offsets similar to 32 bit offsets and assign the top level 24 bit offsets into spaces to improve packing.
2022-07-06 18:44:40 +00:00
Behdad Esfahbod
c091d029c2
Merge pull request #3706 from lb90/dwrite-dll
...
Load DirectWrite dynamically
2022-07-06 10:51:04 -06:00
Luca Bacci
1abc14b463
Do not link with the DWrite lib
...
It's loaded dynamically now
2022-07-06 17:55:39 +02:00
Luca Bacci
c22acfa8bd
Fix function pointer typedef
2022-07-06 17:55:24 +02:00
Kleis Auke Wolthuizen
79eb0f7486
[GSUB] Fix build on GCC < 7
2022-07-06 14:00:16 +02:00
Kleis Auke Wolthuizen
3238cb744b
[GPOS] Fix build on GCC < 7
2022-07-06 14:00:16 +02:00
Luca Bacci
3e881efbe4
Revert "Revert "Revert "[hb-directwrite] Don't load dwrit.dll dynamically"""
...
This reverts commit 361a438658
.
2022-07-06 13:51:56 +02:00
Kleis Auke Wolthuizen
7b51bc95d9
[cplusplus] Fix build on GCC < 7
2022-07-06 13:12:00 +02:00
Behdad Esfahbod
386e1bbad8
Merge pull request #3699 from googlefonts/filter_scripts
...
[subset] Add support for --layout-scripts
2022-07-05 12:46:05 -06:00
Garret Rieger
30309ec8d3
[subset] add null element in _filter_tag_list.
2022-07-05 18:33:19 +00:00
Garret Rieger
216cf5946b
[subset] Allocate space for null entry in script/feature list.
2022-07-05 17:49:12 +00:00
Behdad Esfahbod
d9ab805e61
Fix LookupFlag negation
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3703
2022-07-05 11:45:10 -06:00
Behdad Esfahbod
b0cb9a1a63
Make get_leading_bearing return bool
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3496
Part of supporting >64k glyphs correctly.
2022-07-03 15:32:32 -06:00
Behdad Esfahbod
115e1a03e7
[glyf] Relax condition for matching number of coords
2022-07-03 14:45:12 -06:00
Behdad Esfahbod
800760c5bd
[glyf] Rename get_extents functions for clarity
2022-07-03 13:21:06 -06:00
Behdad Esfahbod
ab327f93b7
[glyf] Fix another bug with scaling
...
Of advances this time.
That codepath is never exercised though, if font has HVAR table.
2022-07-03 13:17:03 -06:00
Behdad Esfahbod
f46ddeba48
[hmtx/glyf] Rename side-bearing functions for clarity
2022-07-03 13:12:49 -06:00
Behdad Esfahbod
23435d5285
[hvar] Rename advance function for clarity
2022-07-03 13:04:27 -06:00
Behdad Esfahbod
9f974cae4a
[hvar] Rename lsb function for clarity
2022-07-03 13:03:12 -06:00
Behdad Esfahbod
ab5ce64313
[VVAR] Rename vorg function for clarity
2022-07-03 13:00:22 -06:00
Behdad Esfahbod
b2d60cbd6e
[glyf] Rename advance functions for clarity
2022-07-03 12:56:48 -06:00
Behdad Esfahbod
35c00c1216
[hmtx] Rename advance functions for clarity
2022-07-03 12:54:17 -06:00
Behdad Esfahbod
6b82d4faa1
[glyf] Make an optional argument non-optional
2022-07-03 12:45:27 -06:00
Behdad Esfahbod
3ef590808f
[glyf] Internal flip a variable
2022-07-03 12:44:24 -06:00
Behdad Esfahbod
b07fa2bb1a
[ot-font] Respect VORG even if it has no variations
2022-07-03 12:39:55 -06:00
Behdad Esfahbod
71d52e10aa
[var] Fix getting side-bearing variations
...
In HVAR/VVAR, if the side-bearing mappings are null, it means the
table does not have them and they should be loaded from glyf table.
Previous logic was returning zer0.
Part of fixing https://github.com/harfbuzz/harfbuzz/issues/1694
2022-07-03 12:39:55 -06:00
Behdad Esfahbod
78b4f39821
[glyf] Fix confusion between scaled vs unscaled lsb
...
Was always broken.
2022-07-03 12:39:55 -06:00
Behdad Esfahbod
6665881c7d
[glyf] Change side-bearing rounding
2022-07-03 12:39:55 -06:00
Behdad Esfahbod
0a295fcde6
[var] Fix DeltaSetIndexMapFormat1
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3692
2022-07-01 17:16:24 -06:00
Behdad Esfahbod
351cccdb75
[buffer-deserialize] Deserialize glyph flags
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1482
2022-07-01 16:52:49 -06:00
Behdad Esfahbod
5134041f21
[deserialize-json] Make it actually work!
...
Was not correctly deserializing glyph names as it was not dropping
double-quotes from glyph name before parsing.
2022-07-01 16:48:47 -06:00
Behdad Esfahbod
534b0911f7
[aat-layout] Add an unlikely()
2022-07-01 16:20:31 -06:00
Stephan Bergmann
14b018124c
hb_graphite2_cluster_t::advance can apparently be negative
...
...as seen with HarfBuzz used by LibreOffice, with `instdir/program/soffice
--headless --convert-to pdf` of doc/abi6073-2.doc from the LibreOffice crash-
testing corpus when run under UBSan,
> hb-graphite2.cc:361:15: runtime error: -1024 is outside the range of representable values of type 'unsigned int'
> #0 in _hb_graphite2_shape at workdir/UnpackedTarball/harfbuzz/src/hb-graphite2.cc:361:15
> #1 in _hb_shape_plan_execute_internal(hb_shape_plan_t*, hb_font_t*, hb_buffer_t*, hb_feature_t const*, unsigned int) at workdir/UnpackedTarball/harfbuzz/src/./hb-shaper-list.hh:38:1
> #2 in hb_shape_plan_execute at workdir/UnpackedTarball/harfbuzz/src/hb-shape-plan.cc:453:14
> #3 in hb_shape_full at workdir/UnpackedTarball/harfbuzz/src/hb-shape.cc:139:19
> #4 in GenericSalLayout::LayoutText(ImplLayoutArgs&, SalLayoutGlyphsImpl const*) at vcl/source/gdi/CommonSalLayout.cxx:495:23
> #5 in OutputDevice::getFallbackLayout(LogicalFontInstance*, int, ImplLayoutArgs&, SalLayoutGlyphs const*) const at vcl/source/outdev/font.cxx:1232:21
> #6 in OutputDevice::ImplGlyphFallbackLayout(std::unique_ptr<SalLayout, std::default_delete<SalLayout> >, ImplLayoutArgs&, SalLayoutGlyphs const*) const at vcl/source/outdev/font.cxx:1300:48
> #7 in OutputDevice::ImplLayout(rtl::OUString const&, int, int, Point const&, long, long const*, SalLayoutFlags, vcl::TextLayoutCache const*, SalLayoutGlyphs const*) const at vcl/source/outdev/text.cxx:1332:22
> #8 in lcl_CreateLayout(SwTextGlyphsKey const&, __gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<SwTextGlyphsKey const, SwTextGlyphsData> >, std::__debug::map<SwTextGlyphsKey, SwTextGlyphsData, std::less<SwTextGlyphsKey>, std::allocator<std::pair<SwTextGlyphsKey const, SwTextGlyphsData> > >, std::bidirectional_iterator_tag>) at sw/source/core/txtnode/fntcache.cxx:233:33
> #9 in SwFntObj::GetCachedSalLayoutGlyphs(SwTextGlyphsKey const&) at sw/source/core/txtnode/fntcache.cxx:257:12
> #10 in SwFont::GetTextBreak(SwDrawTextInfo const&, long) at sw/source/core/txtnode/fntcache.cxx:2551:58
> #11 in SwTextSizeInfo::GetTextBreak(long, o3tl::strong_int<int, Tag_TextFrameIndex>, unsigned short, vcl::TextLayoutCache const*) const at sw/source/core/text/inftxt.cxx:450:20
> #12 in SwTextGuess::Guess(SwTextPortion const&, SwTextFormatInfo&, unsigned short) at sw/source/core/text/guess.cxx:205:26
> #13 in SwTextPortion::Format_(SwTextFormatInfo&) at sw/source/core/text/portxt.cxx:305:32
> #14 in SwTextPortion::Format(SwTextFormatInfo&) at sw/source/core/text/portxt.cxx:456:12
> #15 in SwLineLayout::Format(SwTextFormatInfo&) at sw/source/core/text/porlay.cxx:260:31
(where in frame #4 GenericSalLayout::LayoutText, pHbBuffer->props.direction is
HB_DIRECTION_RTL, in case that is relevant).
It is unclear to me whether it is sufficient to only change
hb_graphite2_cluster_t::advance from signed to unsigned int, as there are other
unsigned int variables (like curradv in _hb_graphite2_shape) whose value depend
on hb_graphite2_cluster_t::advance, and which thus might also become negative.
But unlike the float -> unsigned int conversion that UBSan warned about here
(where gr_slot_origin_X() and xscale are float), those are signed int ->
unsigned int conversions that do not cause undefined behavior. At least, with
this change, the above --convert-to pdf and a full `make check screenshot`
succeeded for me under without further UBSan warnings.
(For the version of HarfBuzz optionally built as part of the LibreOffice build,
this has been addressed with
<https://git.libreoffice.org/core/+/6e53e03f752c2f85283c4d47efaaf0683299783c%5E!/ >
"external/harfbuzz: hb_graphite2_cluster_t::advance can apparently be
negative.")
2022-07-01 12:00:09 -06:00
Garret Rieger
dbfd2bf327
minor.
2022-06-30 23:04:35 +00:00
Garret Rieger
79bdcbef0d
[subset] Fix GDEF version downgrade logic.
2022-06-30 22:20:32 +00:00
Garret Rieger
587969af42
[subset] Drop scripts that are not in the layout_scripts list.
2022-06-30 21:37:42 +00:00
Garret Rieger
900476c635
Move GSUB.hh GPOS.hh back into the GPOS/GSUB sub directories.
2022-06-30 15:33:20 -06:00
Garret Rieger
5fdae68481
[reorg] Move GSUB.hh up one level and change GSUB namespace to GSUB_impl.
2022-06-30 15:33:20 -06:00
Garret Rieger
70e32a662f
[subset] Add layout_scripts to subset input.
2022-06-30 21:00:48 +00:00
Behdad Esfahbod
13c499cb26
[hvar] Minor internal rewiring
...
Not passing font to functions makes it more clear that they don't
scale values.
2022-06-30 14:25:09 -06:00
Garret Rieger
41d2c335bc
[subset] Apply script list filter when doing layout collection.
2022-06-30 20:24:42 +00:00
Garret Rieger
e5c8a2f4e1
[subset] Pass plan through to collect methods.
...
Allows to more easily access the filtering sets as they are added and enables propagating errors to the plan.
2022-06-30 20:14:29 +00:00
Behdad Esfahbod
aba4a4957a
[ot-font] Disable VORG variation code in HB_NO_VAR
2022-06-30 14:13:44 -06:00
Behdad Esfahbod
d5921b379b
[tt-font] Apply VVAR.vOrg variation to VORG origin
...
Mostly fixes https://github.com/harfbuzz/harfbuzz/issues/1694
2022-06-30 14:09:09 -06:00
Behdad Esfahbod
eee29f7327
[hmtx] Specialize var_table
2022-06-30 14:09:09 -06:00
Garret Rieger
1bf051ef3b
[subset] refactor feature tag filtering so it can be used for scripts as well.
2022-06-30 20:03:33 +00:00
Khaled Hosny
f6f93c30f3
[docs] Fix warning
...
These comment blocks don’t use gtk-doc syntax.
2022-06-30 08:50:59 +02:00
Khaled Hosny
98e90cc67c
[docs] Reduce warnings
...
Use markdown syntax for inline code blocks instead of %true, %false, and
%NULL.
2022-06-30 08:44:40 +02:00
Behdad Esfahbod
c69ec6f5bb
[kern2] Fix sanitize issue on 32bit systems
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3483
2022-06-29 16:32:59 -06:00
Khaled Hosny
34d3d49e78
[docs] Fix Since annotation
2022-06-29 07:46:21 +02:00
Khaled Hosny
096aaa62a6
4.4.1
2022-06-29 07:30:05 +02:00
Behdad Esfahbod
050f169078
[GPOS/kerx] Call into impl namespace from kerx
2022-06-28 18:52:27 -06:00
Garret Rieger
910a137f4e
[reorg] Fix propagate_attachment_offsets definition.
2022-06-28 18:47:50 -06:00
Garret Rieger
3fbf2dece7
[reorg] Move OT::Layout::GPOS_impl::GPOS to OT::Layout::GPOS.
2022-06-28 18:47:50 -06:00
Garret Rieger
88ef3c5a9a
[reorg] Change OT::Layout::GPOS to OT::Layout::GPOS_impl.
2022-06-28 18:47:50 -06:00
Garret Rieger
49ddf069e0
[reorg] Move GPOS reverse_cursive_minor_offset implementation into new directory layout.
2022-06-28 18:47:50 -06:00
Garret Rieger
74f45f7c2a
[reorg] Move remaining GPOS lookup types to new directory.
2022-06-28 18:47:50 -06:00
Garret Rieger
197d9a5c99
[reorg] Move more GPOS lookups to new directory.
2022-06-28 18:47:50 -06:00
Garret Rieger
c7307ca06a
[reorg] Begin moving GPOS into the new directory layout.
2022-06-28 18:47:50 -06:00
Behdad Esfahbod
9909d11f6f
[indic generator] Fix regression
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3690
2022-06-28 16:02:51 -06:00
Behdad Esfahbod
4499ae0225
[coretext] Fix positioning of out-of-order glyphs
...
Unfortunately this now generates negative advances. To be fixed...
2022-06-28 15:44:34 -06:00
Behdad Esfahbod
58d2e93099
[coretext] Fix up clusters only if needed
2022-06-28 15:44:34 -06:00
Behdad Esfahbod
eaba5e74a9
[directwrite] Simplify
2022-06-28 13:51:50 -06:00
Behdad Esfahbod
33e3bf2d79
[font] Drop caches on variation changes
2022-06-28 13:51:50 -06:00
Behdad Esfahbod
c90130e625
[coretext] Remove old hack now that font layer takes care...
...
of invalidating font data when font settings change.
2022-06-28 13:30:44 -06:00
Behdad Esfahbod
c1c78ade71
[font] When font changes, drop font shaper data
...
https://github.com/harfbuzz/harfbuzz/issues/3683#issuecomment-1168016509
2022-06-28 13:19:30 -06:00
Behdad Esfahbod
34c6c0193c
[glyf] Fix byterange check again
2022-06-27 20:26:57 -06:00
Behdad Esfahbod
20572f914c
[glyf] Move read_flags into a function
2022-06-27 20:22:09 -06:00
Behdad Esfahbod
31e985d7d1
[buffer] Likely that not messaging
2022-06-27 16:32:02 -06:00
Behdad Esfahbod
4be074e2cb
[gvar] Whitespace
2022-06-27 16:12:42 -06:00
Behdad Esfahbod
a96647841a
[gvar] Optimize apply_deltas_to_points
2022-06-27 15:41:02 -06:00
Behdad Esfahbod
e9af9062c0
[gvar] Optimize unpack_deltas
2022-06-27 15:38:42 -06:00
Behdad Esfahbod
573e77280b
[gvar] Optimize unpack_deltas
2022-06-27 15:35:28 -06:00
Behdad Esfahbod
698f51464c
[gvar] Share vector allocation across delta-sets
2022-06-27 15:30:19 -06:00
Behdad Esfahbod
39e280c256
[gvar] Handle a couple of error conditions
2022-06-27 15:28:30 -06:00
Behdad Esfahbod
5be6e5dd57
[gvar] Rewrite linear interpolation
2022-06-27 15:22:16 -06:00
Behdad Esfahbod
57519b532d
[gvar] Use pointer-to-member instead of function
2022-06-27 15:18:56 -06:00
Behdad Esfahbod
ab15fe082a
[gvar] Handle a couple of error conditions
2022-06-27 15:13:10 -06:00
Behdad Esfahbod
b7e9e8785c
[gvar] Optimize deltas and points loading
2022-06-27 15:09:25 -06:00
Behdad Esfahbod
6e72c2e3fa
[glyf] Add an assertion
2022-06-27 15:09:25 -06:00
Behdad Esfahbod
5da341ce92
[map] Another try at hiding minus1
...
To fix https://github.com/harfbuzz/harfbuzz/issues/3684
2022-06-27 14:00:34 -06:00
Behdad Esfahbod
c72d3104ed
[map] Return const reference in operator[]
2022-06-27 13:31:05 -06:00
Behdad Esfahbod
69d53f3e7f
[map] Make default_value() inline
...
See if it make fix https://github.com/harfbuzz/harfbuzz/issues/3684
2022-06-27 13:17:10 -06:00
Behdad Esfahbod
3a0e27e794
[glyf] Move comment
2022-06-27 13:07:39 -06:00
Behdad Esfahbod
d0836dee7a
[glyf] Minor typo change
2022-06-27 13:05:58 -06:00
Behdad Esfahbod
5cca25e5d0
[glyf] Accumulate points as int
...
Everything is int at this stage.
Doesn't seem to matter for performance though.
2022-06-27 13:03:06 -06:00
Behdad Esfahbod
d6f60b3c19
[glyf] Minor optimization
2022-06-27 13:00:08 -06:00
Behdad Esfahbod
b30a3dcba3
[glyf] Another bounds check
...
Very unlikely that is needed but technically possible.
2022-06-27 12:56:54 -06:00
Behdad Esfahbod
2e9dbdcbbe
[glyf] Protect against an unlikely overflow
2022-06-27 12:55:13 -06:00
Khaled Hosny
8537d68172
4.4.0
2022-06-27 20:51:16 +02:00
Behdad Esfahbod
f1fb8c4489
[glyf] Optimize Glyph layout
2022-06-27 12:41:46 -06:00
Behdad Esfahbod
34e3f561b5
[glyf] Fix a bug I introduced recently
...
Pass gid to Glyph in trim_padding codepath.
2022-06-27 12:39:35 -06:00
Behdad Esfahbod
97cbc2d40a
[gvar] Remove condition that font num_coords should match gvar's
2022-06-27 12:37:11 -06:00
Behdad Esfahbod
19cbfb9ce9
[glyf] Relax a condition that font num_coords be equal to gvar's
...
gvar itself still checks the same.
2022-06-27 12:32:18 -06:00
Behdad Esfahbod
d5cfbaa068
[glyf] Optimize composite points loading
2022-06-27 12:24:20 -06:00
Behdad Esfahbod
32dc0641e1
[glyf] Remove an unnecessary condition
2022-06-27 12:22:06 -06:00
Behdad Esfahbod
95bfa0913d
[gvar] Optimize translate()
2022-06-27 12:10:16 -06:00
Behdad Esfahbod
9f067582b8
[gvar] Optimize transform()
2022-06-27 12:10:16 -06:00
Behdad Esfahbod
cfc57ef862
[glyf] Optimize contour_point_t layout
2022-06-27 12:10:16 -06:00
Behdad Esfahbod
75ca78a6bb
[glyf] Optimize hb_contour_points_t::extend
2022-06-27 12:10:16 -06:00
David Corbett
04c4767150
[lao] Decompose and reorder U+0EB3 around U+0EBB
2022-06-27 11:31:32 -06:00
Behdad Esfahbod
d3308f4713
[font] Optimize font scaling further
2022-06-27 11:28:57 -06:00
Matthias Clasen
e72506d085
Fix the annotation for hb_blob_get_data
...
This function will return NULL for the the
empty blob. That is important information for
bindings that treat nullability as a type trait.
2022-06-27 10:59:02 -06:00
Behdad Esfahbod
3c49a6a60a
[glyf] Fix an allocation error
...
Try fixing assertion failure found by fuzzers:
hb-draw-fuzzer: ../../src/harfbuzz/src/OT/glyf/glyf.hh:175: bool OT::glyf_accelerator_t::get_points(hb_font_t *, hb_codepoint_t, T) const [T = OT::glyf_impl::path_builder_t]: Assertion `count >= glyf_impl::PHANTOM_COUNT' failed.
2022-06-27 10:57:51 -06:00
Behdad Esfahbod
556e7078f0
[font] Optimize glyph scaling
2022-06-26 17:48:43 -06:00
Behdad Esfahbod
a1c45bbb55
[glyf] Minor simplify
2022-06-26 17:30:16 -06:00
Behdad Esfahbod
a21a9bb855
[glyf] Optimize flags decoding byte range checking
2022-06-26 17:24:29 -06:00
Behdad Esfahbod
0f1fdf461c
[glyf] Optimize points decoding byte range checking
2022-06-26 17:22:45 -06:00
Behdad Esfahbod
51cfcf2957
[glyf] Optimize points decoding
2022-06-26 17:04:47 -06:00
Behdad Esfahbod
86b7022503
[glyf] Optimize flag decoding
2022-06-26 17:02:32 -06:00
Behdad Esfahbod
30d58bfd0f
[glyf] Don't translate/transform components if has no effect
2022-06-26 16:49:40 -06:00
Behdad Esfahbod
2bb0fa878a
[glyf] Remove unneeded point init()
2022-06-26 16:43:05 -06:00
Behdad Esfahbod
fc72a1d22d
[glyf] Add a pre-allocation for phantom points
2022-06-26 16:42:01 -06:00
Behdad Esfahbod
8d242aaa8b
[glyf] Rewrite a loop harmlessly
...
I hope...
2022-06-26 16:36:08 -06:00
Behdad Esfahbod
cf57f04ddb
[glyf/path-builder] Optimize scaling code
...
Scale each point once upon entry to function.
This makes our shape fetching code as fast as FreeType for all
benchmark cases now.
2022-06-26 16:26:17 -06:00
Behdad Esfahbod
36dd5d32fb
[draw] Use multiplication instead of division in quadratic conversion
2022-06-26 16:16:43 -06:00
Behdad Esfahbod
b095df1343
[glyf/path-builder] Use operator bool for style
2022-06-26 16:12:50 -06:00
Behdad Esfahbod
abb433d0f4
[glyf] Avoid a copy of points in shape fetching for simple glyphs
...
Matches performance with freetype now.
2022-06-26 16:09:32 -06:00
Behdad Esfahbod
7eac779abf
Revert "Revert "[glyf] Optimize shape loading""
...
This reverts commit 164bd288cf
.
2022-06-26 16:02:27 -06:00
Behdad Esfahbod
164bd288cf
Revert "[glyf] Optimize shape loading"
...
This reverts commit f0819301b7
.
Broke tests. To be debugged and redone.
2022-06-26 16:01:15 -06:00
Behdad Esfahbod
f0819301b7
[glyf] Optimize shape loading
...
Do away with a copy for simple glyph load.
2022-06-26 15:52:54 -06:00
Behdad Esfahbod
65b066f18e
[glyf/path-builder] Simplify initialization
2022-06-26 13:18:00 -06:00
David Corbett
b2abd5c7e8
[thai] Reword to include all relevant marks
2022-06-26 13:12:12 -06:00
Behdad Esfahbod
2d4557fe04
[glyf/SimpleGlyph] Use member pointer instead of lambda
2022-06-26 13:08:37 -06:00
Behdad Esfahbod
9ce9773040
[glyf/SimpleGlyph] Minor use constructor for contour_point_t
2022-06-26 13:08:37 -06:00
Behdad Esfahbod
f897978f21
[glyf] Adjust a check-range
2022-06-26 13:08:37 -06:00
Behdad Esfahbod
db039d97ff
[glyf/Composite] Make glyphIndex public
2022-06-26 13:08:37 -06:00
Behdad Esfahbod
1b14bf8aa8
[glyf] Rename CompositeGlyphChain to CompositeGlyphRecord
2022-06-26 13:08:37 -06:00
Behdad Esfahbod
a5ac7f2ea6
[glyf/composite_iter_t] Renames
2022-06-26 13:08:37 -06:00
Behdad Esfahbod
d15260ca95
[gpos] Limit recursion depth in propagate_attachment_offsets()
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/2927
2022-06-25 19:53:11 -06:00
Behdad Esfahbod
449bdeed5f
[glyf] Rename get_iterator() to iter()
...
That's the standard name.
2022-06-25 18:32:30 -06:00
Behdad Esfahbod
11d2670676
[glyf] Split off glyf-helpers.hh
2022-06-25 18:19:09 -06:00
Behdad Esfahbod
7c4b8c9bf4
[glyf] path-builder minor header guards fix test
2022-06-25 18:14:42 -06:00
Behdad Esfahbod
499c637922
[glyf] Split off path-builder.hh
2022-06-25 18:07:49 -06:00
Behdad Esfahbod
13aadc8961
[glyf] Split off CompositeGlyph.hh
2022-06-25 18:03:15 -06:00
Behdad Esfahbod
f0ec2b728e
[glyf] Split off SimpleGlyph.hh
2022-06-25 17:55:16 -06:00
Behdad Esfahbod
8ed78627f0
[glyf] Split off GlyphHeader.hh
2022-06-25 17:53:13 -06:00
Behdad Esfahbod
81315a3016
[glyf] Namespace implementation in glyf_impl
...
Part of https://github.com/harfbuzz/harfbuzz/issues/3677
2022-06-25 17:50:44 -06:00
Behdad Esfahbod
be1d4bcf29
[glyf] Add fast __end__ to composite iterator
2022-06-25 17:45:21 -06:00
Behdad Esfahbod
ef250eea7e
[glyf] Move a few structs out of Glyph{}
2022-06-25 17:37:59 -06:00
Behdad Esfahbod
ae75f066b5
[glyf] Split SubsetGlyph
2022-06-25 17:12:10 -06:00
Behdad Esfahbod
0031069f47
[glyf] Fix includes
2022-06-25 17:05:18 -06:00
Behdad Esfahbod
b4a0c30d98
[glyf] Remove hardcoded HB_MAX_COMPOSITE_OPERATIONS
2022-06-25 17:01:11 -06:00
Behdad Esfahbod
36373ee15c
[glyf] Move add_gid_and_children to subset-plan where it belongs
2022-06-25 16:55:26 -06:00
Behdad Esfahbod
ba1c9eda38
[glyf] Use a range for loop
2022-06-25 16:51:33 -06:00
Behdad Esfahbod
e4f2bc9342
[glyf] Split Glyph.hh
2022-06-25 16:47:06 -06:00
Behdad Esfahbod
3f9c6bf3fc
[glyf] Minor in _write_loca()
2022-06-25 14:46:26 -06:00
Behdad Esfahbod
852985da0f
[glyf] Split loca.hh
2022-06-25 14:41:51 -06:00
Behdad Esfahbod
100576b7b7
[glyf] Start splitting file
2022-06-25 14:38:43 -06:00
Behdad Esfahbod
e867ac3aef
Merge pull request #3674 from harfbuzz/use-sinhala-no-hacks
...
[use] Switch Sinhala to USE
2022-06-25 12:43:04 -06:00
Behdad Esfahbod
b1629b0ce0
[gdef] Minor harmless use of HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED
2022-06-25 12:00:25 -06:00
David Corbett
78c5ae3979
[indic] Remove remnants of Sinhala
2022-06-25 13:49:18 -04:00
Behdad Esfahbod
0cc948b96c
[use] Switch Sinhala to USE
...
https://github.com/harfbuzz/harfbuzz/issues/1044
2022-06-25 13:48:43 -04:00
David Corbett
6059828769
[use] Reintroduce the HVM class for U+0DCA
2022-06-25 13:48:43 -04:00
David Corbett
1555b30081
Add U+25CC to lone Robatic but not after U+17D9
2022-06-25 11:02:39 -06:00
David Corbett
0f15cb12de
[indic-table] Fix block headers
2022-06-25 11:02:39 -06:00
Garret Rieger
2674962cf5
[repacker] Add comment to graph class.
2022-06-24 17:16:50 -06:00
Garret Rieger
81a2dd0e80
[repacker] Update Makefile for repacker re-org.
2022-06-24 17:16:50 -06:00
Garret Rieger
7078560e33
[repacker] extract graph serialization code into a seperate file.
2022-06-24 17:16:50 -06:00
Garret Rieger
20b02a672d
[repacker] Begin splitting up the repacker implementation into several files.
2022-06-24 17:16:50 -06:00
Behdad Esfahbod
ad2ab1ddb4
[indic] Clear syllables at the end of GSUB
2022-06-24 11:08:35 -06:00
Behdad Esfahbod
8bfb3e9df2
[indic] Disable vowel-constraints under uniscribe-bug-compatible
2022-06-23 13:28:07 -06:00
Behdad Esfahbod
a5cf1a8738
Another null adjustment
2022-06-20 18:01:39 -06:00
Behdad Esfahbod
a7960bdfb0
[config] Add HB_NO_LANGUAGE_LONG and enable in TINY profile
...
Disables 3letter language tags and more complex ones.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3664
2022-06-20 17:55:28 -06:00
Behdad Esfahbod
0d03123350
Mark a null variable as const
2022-06-20 16:51:35 -06:00
Behdad Esfahbod
91d00ab722
[ucd] Update
2022-06-20 13:36:01 -06:00
Khaled Hosny
a15ad778fe
[arabic-fallback] Generate PUA table from data
...
Uses packtab for more compact arrays.
2022-06-19 12:29:10 -06:00