Commit Graph

12509 Commits

Author SHA1 Message Date
Qunxin Liu af1e605be2 [instancer] bug fix
It's possible that length of all_points equals to 4 for non-empty
glyphs: a composite glyph which contains only one child glyph that is
empty.
2023-02-10 12:51:27 -07:00
Behdad Esfahbod 8302da8630
Merge pull request #4097 from harfbuzz/embolden
Embolden
2023-02-10 12:50:45 -07:00
Pedro J. Estébanez b1680e9143 Use proper preprocessor checks for UWP 2023-02-10 09:39:40 -07:00
Behdad Esfahbod 737b15c5a0 [embolden] Docs 2023-02-08 17:45:59 -07:00
Behdad Esfahbod 1d9dafbfd5 [glyf] Support cubic curves
https://github.com/harfbuzz/boring-expansion-spec/issues/41
2023-02-07 22:19:45 -07:00
Behdad Esfahbod 64fa5cd482 [GPOS] Fix assert fail introduced recently
Was introduced in 8708b9e081.

If these lookups are recursed to from (Chain)Context out-of-order,
it was possible that last_base > buffer->idx, in which case we
were attaching marks to a base after them... and an assertion
was failing fortunately.

Fixes https://oss-fuzz.com/testcase-detail/6377756666757120
2023-02-07 15:52:53 -07:00
Qunxin Liu 840e1b6b84 [instancer] bug fix 2023-02-07 15:49:12 -07:00
Behdad Esfahbod 3fd9311649 [indic] Use a hb_swap() 2023-02-07 14:16:24 -07:00
Behdad Esfahbod be1c14ee0a [embolden] Adjust font_h_extents 2023-02-07 13:52:53 -07:00
Behdad Esfahbod b350122fb3 [embolden] Fix glyph_extents in hb-ft 2023-02-07 13:49:16 -07:00
Behdad Esfahbod 61a1a88940 [hb-ft] Fix --font-grade 2023-02-07 13:47:04 -07:00
Behdad Esfahbod 560a65e456 [embolden] Update glyph_extents in hb-ot-font 2023-02-07 13:46:13 -07:00
Behdad Esfahbod aef002e0d9 [embolden] Add in-place option
Adds --font-grade to hb-view and hb-shape.
2023-02-07 11:52:25 -07:00
Behdad Esfahbod ce6440fceb [buffer] Speed up merge_clusters_impl 2023-02-06 16:12:03 -07:00
Behdad Esfahbod 1930760bc2 [buffer] Fix up previous commit
85be877925 (commitcomment-99547060)
2023-02-06 15:54:09 -07:00
Behdad Esfahbod 30b84faba7 [buffer] Optimize _infos_set_glyph_flags to avoid O(n^2) behavior
85be877925 (commitcomment-99547060)
2023-02-06 15:27:13 -07:00
Behdad Esfahbod 0b97ac39ac [buffer] Optimize _infos_find_min_cluster for monotone clusters 2023-02-06 15:17:09 -07:00
Behdad Esfahbod 8708b9e081 [GPOS] Avoid O(n^2) behavior in mark-attachment
Better implementation; avoids arbitrary limit on look-back.
2023-02-06 14:51:25 -07:00
Behdad Esfahbod 661050b465 Revert "[layout] Limit how far we skip when looking back"
This reverts commit 85be877925.
2023-02-06 13:09:14 -07:00
Behdad Esfahbod b29fbd16fa [gsubgpos] Refactor skippy_iter.match() 2023-02-06 13:09:14 -07:00
Behdad Esfahbod ef2a8f722f [VarComposite] Adjust for RESET_UNSPECIFIED_AXES semantic change
https://github.com/harfbuzz/boring-expansion-spec/issues/81
2023-02-06 12:04:16 -07:00
Behdad Esfahbod cf39d316d8 [outline] Add FreeType authors copyrights 2023-02-02 15:51:22 -07:00
Matthias Clasen 061f995845 [font] Document synthetic boldness APIs 2023-02-02 15:51:22 -07:00
Behdad Esfahbod 2119eab69f [embolden] Adjust advance values 2023-02-02 15:51:22 -07:00
Behdad Esfahbod b087266e51 [ot-font] Conditionalize emboldening 2023-02-02 15:51:22 -07:00
Behdad Esfahbod 36dcc9a432 [ot-font] Fix emboldening CFF 2023-02-02 15:51:22 -07:00
Behdad Esfahbod 6b3fe8ac1b [embolden] Semi-handle with negative scales 2023-02-02 15:51:22 -07:00
Behdad Esfahbod e39104ba19 [font/util] Add emboldening API, --font-bold
Needs documentation.
2023-02-02 15:51:22 -07:00
Behdad Esfahbod 4247b78e31 [outline] Comment 2023-02-02 15:51:22 -07:00
Behdad Esfahbod ae522a1372 [embolden] Rename to hb-outline 2023-02-02 15:51:22 -07:00
Behdad Esfahbod fda2f6f64e [embolden] Shuffle under hb_outline_t 2023-02-02 15:51:22 -07:00
Behdad Esfahbod 7774bccb48 [embolden] Renames 2023-02-02 15:51:22 -07:00
Behdad Esfahbod c06f95ebe1 [embolden] Move code 2023-02-02 15:51:22 -07:00
Behdad Esfahbod 6b4a6fbedd [embolden] Add orientation detection 2023-02-02 15:51:22 -07:00
Behdad Esfahbod 1817f18085 [embolden] Simplify recording-pen 2023-02-02 15:51:22 -07:00
Behdad Esfahbod 70149885a7 [font] Towards implementing emboldening 2023-02-02 15:51:22 -07:00
Garret Rieger fda200658e [subset] fix missing compiled glyph cleanup when serialization succeeds. 2023-02-02 15:25:37 -07:00
Behdad Esfahbod 9bd3259335 [cairo] Fix uninitialized value
Ouch!
2023-02-02 13:36:23 -07:00
Behdad Esfahbod 85be877925 [layout] Limit how far we skip when looking back
See comments.
2023-02-01 20:00:43 -07:00
Behdad Esfahbod d18fd3f7eb [layout] Comment 2023-01-31 16:28:49 -07:00
Behdad Esfahbod 7a4bd97e4a [layout] Build lookup accelerators lazily on-demand
Reduces memory consumption for large multi-script fonts
drastically.
2023-01-31 16:19:37 -07:00
Behdad Esfahbod 83353f13f4 [layout] Reduce memory use slightly
By using raw pointer instead of vector for subtable accelerator.

To be used for more memory saving by making subtable accelerators
lazy-loaded by shape-plans for large fonts.
2023-01-31 16:19:37 -07:00
Garret Rieger 2b6d74b42e [subset] for keep everything, don't drop any tables. 2023-01-31 11:16:53 -07:00
Behdad Esfahbod 277003d553 [ft] Fit advance cache into short int 2023-01-30 22:43:01 -07:00
Behdad Esfahbod a924bbcfce [atomic/cache] Add hb_atomic_short_t 2023-01-30 14:52:22 -07:00
Behdad Esfahbod e7a71ea15b [font] Docs 2023-01-30 11:21:08 -07:00
Behdad Esfahbod cb47dca74c [object] Handle mallocation error in set_user_data
Should make bots happy.
2023-01-29 10:57:29 -07:00
Behdad Esfahbod 548bad221c [user-data] Move methods to header file
No idea why they were in hb-static.
2023-01-29 10:11:40 -07:00
Behdad Esfahbod 02f79f60f2
Merge pull request #4092 from harfbuzz/more-cmap-cache
[ot-font] Use the cmap cache more
2023-01-29 09:36:46 -07:00
Behdad Esfahbod 784fe9ac67 [cmap] Simplify caching 2023-01-29 09:26:52 -07:00
Matthias Clasen a451aa5465 Add back a null check
This was accidentally dropped in the previous commit.
2023-01-29 11:25:28 -05:00
Behdad Esfahbod 6622e04aa1 [solver] Fix unused-variable error
223abd72b9
2023-01-29 09:06:52 -07:00
Matthias Clasen 318aa10708 [ot-font] Use the cmap cache more
Use the cmap cache for get_nominal_glyph and
get_variation_glyph as well. The first of these
is used a lot in pango.
2023-01-29 09:17:17 -05:00
Behdad Esfahbod 5da829eaf5 [font] Comments 2023-01-28 22:18:53 -07:00
Behdad Esfahbod 544dd9678c [font] Fix unlikely 2023-01-28 22:06:46 -07:00
Behdad Esfahbod c1d0daf5f1 [font] unlikely 2023-01-28 22:05:24 -07:00
Behdad Esfahbod 30ee7a21e1 [font] Typo 2023-01-28 21:48:52 -07:00
Matthias Clasen 04056d44e2 [layout] Optimize more buffer message calls
Continuation of da7b66c1f8.
2023-01-28 21:35:20 -07:00
Behdad Esfahbod f8a744d9d5 [ot-font] Add a cmap cache
Speeds up Roboto shaping by 7%, for 1kb per face.
2023-01-28 13:38:07 -07:00
Behdad Esfahbod 1b53ed3c41 [cache] Remove empty fini() 2023-01-28 13:38:07 -07:00
Behdad Esfahbod 115d572571 [cache] Add constructor 2023-01-28 13:38:07 -07:00
Khaled Hosny ae96295d67 Delete commented out include 2023-01-28 22:12:33 +02:00
Matthias Clasen 09b7fce857 Make includes relative 2023-01-28 12:09:45 -07:00
Matthias Clasen e25e4c9a52 Move GDEF table to src/OT/Layout/GDEF 2023-01-28 12:09:45 -07:00
Matthias Clasen f89fa6dcfe Move name table to src/OT/name 2023-01-28 12:09:45 -07:00
Matthias Clasen b8193357c1 [OT::Color] Drop unused includes 2023-01-28 09:54:30 -07:00
Behdad Esfahbod da7b66c1f8 [layout] Optimize buffer message calls
Those aren't exactly free. They were showing up in profiles.
2023-01-27 16:39:06 -07:00
Behdad Esfahbod 49d75ef331 [gsubgpos] Fix bug in cached ChainContextFormat2 application 2023-01-27 15:37:11 -07:00
Behdad Esfahbod d2279a204f [gsubgpos] Avoid a copy into the vector 2023-01-27 13:09:49 -07:00
Behdad Esfahbod 0f33ea8c4f [subset/COLR] Copy VarStore
Fixes https://github.com/harfbuzz/harfbuzz/issues/4085
2023-01-27 11:26:57 -07:00
Behdad Esfahbod 950c7ab3f0 [gsubgpos] Use accelerator when recursing 2023-01-26 15:26:05 -07:00
Behdad Esfahbod e377888990 [ft-colr] Conditionalize on (unreleased0 FreeType 2.13.0
That's the version that the color API is called stable, and
includes changes that we rely on.
2023-01-26 13:27:55 -07:00
Behdad Esfahbod 281db89a68 [cairo] Try to handle failure in set_user_data 2023-01-26 13:05:12 -07:00
Behdad Esfahbod 2fede3ef4a [layout] Fix a return_trace 2023-01-26 12:56:17 -07:00
Behdad Esfahbod e484d6b990 [cairo] Handle malloc failure 2023-01-26 12:55:25 -07:00
Behdad Esfahbod 29a36010a1 [cairo] Adapt to cairo foreground API change again 2023-01-26 14:32:25 -05:00
Matthias Clasen 30d0d9c56c Adapt to cairo changes
Adapt to the api in the cairo MR that will be used,
and make the code build with older cairo.
2023-01-26 14:32:25 -05:00
Behdad Esfahbod 034d4d26f2 [hb-cairo] Minor simplify 2023-01-26 14:32:25 -05:00
Behdad Esfahbod 26d34392e2 [hb-cairo] Fix condition 2023-01-26 14:32:25 -05:00
Matthias Clasen f9b3c79047 Update to different cairo API
The cairo will likely end up begin a getter for
a cairo_pattern_t instead of a color.
2023-01-26 14:32:25 -05:00
Behdad Esfahbod 4afdbcbad5 [hb-cairo] Don't call get_foreground_color unnecessarily
That would invalidate cairo cache on foreground change, even
if the glyph doesn't need that.
2023-01-26 14:32:25 -05:00
Matthias Clasen c37ea4f93e hb-cairo: Fix handling of foreground color
Use the new cairo_user_scaled_font_get_foreground_color
to obtain the foreground color, since the cr's source
can't be trusted.

Requires https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/420
2023-01-26 14:32:25 -05:00
Behdad Esfahbod aea37bfd37 Fix c++20 build 2023-01-26 12:19:16 -07:00
Behdad Esfahbod e1dc4920ee [iter] Allow hb_len() to fetch c.len as non-function 2023-01-26 12:19:16 -07:00
Behdad Esfahbod 8d29be39b2 [gsubgpos] Minor drop an unnecessary hb_iter 2023-01-26 12:19:16 -07:00
Matthias Clasen c1a5d20951 [doc] Add a missing comma 2023-01-25 21:53:06 -05:00
Behdad Esfahbod 570fe998c9 [cairo] Another sweep_gradient fix
k was -1 sometimes.

Fixes the rest of https://roettsch.es/var_colrv1.html
2023-01-25 15:42:24 -07:00
Behdad Esfahbod ea316b56a0 [cairo] Flip offsets when reversing
Fixes many of the var_colrv1 first row tests.

https://roettsch.es/var_colrv1.html
2023-01-25 15:31:29 -07:00
Behdad Esfahbod 5b05e198cf [cairo] More hb_malloc 2023-01-25 15:24:14 -07:00
Behdad Esfahbod 57352b8bd4 [cairo] Use hb_malloc / hb_free 2023-01-25 15:22:27 -07:00
Behdad Esfahbod a9392c0cbb [cairo] Use hb_swap() 2023-01-25 14:57:02 -07:00
Qunxin Liu 5e86870378 [instancer] compute head/maxp values using only non-empty glyphs 2023-01-25 14:53:19 -07:00
Qunxin Liu d15551c6f3 [instancer] update head table flagbit: allXMinIsLsb 2023-01-25 14:53:19 -07:00
Behdad Esfahbod 2c49eba044 [cairo] Indent 2023-01-25 14:52:39 -07:00
Behdad Esfahbod 2accbdc0b6 [paint] Minor skew 2023-01-25 14:40:04 -07:00
Behdad Esfahbod a4420479a8 Revert "[VarComposite] Fix skew"
This reverts commit 8cf7076309.
2023-01-25 14:37:10 -07:00
Behdad Esfahbod 8cf7076309 [VarComposite] Fix skew 2023-01-25 14:35:35 -07:00
Behdad Esfahbod 626f8e4de3 [paint] Fix skew to match Chrome 2023-01-25 14:33:46 -07:00
Behdad Esfahbod b44ff062e1 [deserialize] Some more 2023-01-25 14:16:46 -07:00
Behdad Esfahbod 57ff696430 [deserialize] One more fix 2023-01-25 14:10:12 -07:00
Behdad Esfahbod e973050986 [hb-buffer-deserialize] Fixups 2023-01-25 14:07:01 -07:00
Behdad Esfahbod a1101f09ca [test-buffer-serialize] Handle too-small out buffer
Need to handle too-small in buffer still.
2023-01-25 13:10:57 -07:00
Behdad Esfahbod 2fec4f1c3d [subset] Finish out hb-subset-instancer-solver.cc 2023-01-25 12:21:15 -07:00
Qunxin Liu 90a98dd62a [instancer] fix potential memory leak for compiled glyph bytes
Also calculate max_offsets after glyph bytes are compiled, cause byte
length of a glyph might change after compile
2023-01-25 11:37:19 -07:00
Behdad Esfahbod 223abd72b9 [subset] Add unfinished port of fonttools instancer solver 2023-01-25 11:37:07 -07:00
Behdad Esfahbod 1b143b0f0c [font] Docs 2023-01-24 18:34:04 -07:00
Behdad Esfahbod 64ed03c9be [cff1] Return no name for out-of-range glyph IDs
Was returning .notdef before.
2023-01-24 18:33:34 -07:00
Matthias Clasen c89aebc40b hb-font: Document length limit for glyph names
This is useful information for users of the
hb_font_get_glyph_name() API.
2023-01-24 18:29:06 -07:00
Qunxin Liu 27f72f0deb [instancer] avoid double free for compiled glyph bytes
also increase the HB_GLYF_MAX_POINTS limit to 20000 cause the test file has a
.notdef glyph which is a composite glyph and has 10176 points after
get_points() call
2023-01-24 17:28:51 -07:00
Behdad Esfahbod b684c6edd4 [hb-cairo] Add hb_cairo_context_t 2023-01-24 12:21:12 -07:00
Behdad Esfahbod 72e13fff65 [COLRv1] Handle void extents 2023-01-24 11:05:38 -07:00
Behdad Esfahbod 20318feddf [COLRv1] Don't return extents if glyph has no paint
Fixes https://github.com/harfbuzz/harfbuzz/issues/4068
2023-01-24 11:04:10 -07:00
Behdad Esfahbod 32afdcdb46 [hb-buffer-deserialize-text-unicode] Relax parsing 2023-01-23 21:10:11 -07:00
Behdad Esfahbod 328ee9b4ad [hb-buffer-deserialize-text-unicodes] Rename 2023-01-23 21:06:27 -07:00
Behdad Esfahbod bc596b8cca [buffer-deserialize-text-unicode] Simplify 2023-01-23 21:03:59 -07:00
Behdad Esfahbod 649973a316 Fix build 2023-01-23 21:02:14 -07:00
Behdad Esfahbod 4268283e54 [buffer-deserialize-text] Accept initial comma 2023-01-23 20:57:56 -07:00
Behdad Esfahbod 2c29b81e7f [buffer-deserialize-text] Separate glyphs / unicodes machines 2023-01-23 20:57:56 -07:00
Behdad Esfahbod d0355eb4bd [buffer-deserialize] Parse whole items at a time
Previous logic would fail if char buffer was partial.
2023-01-23 20:57:56 -07:00
Matthias Clasen f65b04c17c Tweak wording 2023-01-23 19:58:14 -07:00
Matthias Clasen 7e01976bcc [hb-paint] Add some details to the docs 2023-01-23 19:58:14 -07:00
Garret Rieger e4fff64ce3 [repacker] check duplicate() for success.
Fixes fuzzer testcase https://oss-fuzz.com/testcase-detail/5475787333828608.
2023-01-23 18:37:13 -07:00
Behdad Esfahbod 6b72a4ddb0 Revert "[sanitize] Simplify(?) check_range"
This reverts commit af0b1ef8a7.
2023-01-23 18:36:04 -07:00
Behdad Esfahbod 00cf322e23
Merge pull request #4046 from harfbuzz/hb-features-docs
[doc] Try to fix generating hb-features docs
2023-01-23 16:06:26 -07:00
Khaled Hosny 699485b349 [meson] Further simplify generating hb-features.h 2023-01-24 00:15:48 +02:00
Khaled Hosny 2486d6d22f [meson] Reduce repetitions 2023-01-24 00:15:48 +02:00
Khaled Hosny 12f2ecbddb [doc] Generate hb-supported-features.h
See inline comment.
2023-01-24 00:15:48 +02:00
Khaled Hosny 0bbd3360ee [doc] Try to fix generating hb-features docs
Move it to a separate section, since hb-common says include hb.h, while
we want to include hb-features.h here.

This still does not fix generating documentation of undefined macros
(e.g. HB_HAS_GDI since we build docs on Linux).
2023-01-24 00:12:06 +02:00
Behdad Esfahbod af0b1ef8a7 [sanitize] Simplify(?) check_range 2023-01-23 14:31:10 -07:00
Behdad Esfahbod fe94c760e1 [algs] Build fix for clang and __builtin_mul_overflow
Fixes https://github.com/harfbuzz/harfbuzz/issues/4066
2023-01-23 14:05:28 -07:00
Khaled Hosny 1cf61f3053 [meson] Fix build with -Dgobject=disabled 2023-01-23 16:26:35 +02:00
Behdad Esfahbod def94aa8c5 [features] Add HB_HAS_GOBJECT 2023-01-22 14:01:34 -07:00
Behdad Esfahbod b3006ba9cb Docs 2023-01-22 13:46:35 -07:00
Behdad Esfahbod e3e4d1ecdc [name] Add hb_ot_name_id_predefined_t
Not sure what to do about its docs.
2023-01-22 13:41:43 -07:00
Behdad Esfahbod 7a47a369d3 [hmtx] Fix typo 2023-01-22 09:09:45 -07:00
Behdad Esfahbod b987918125
Merge pull request #4052 from googlefonts/instancer_recalc_bounds
[instancer] recalc bounds by default when --instance option is enabled
2023-01-22 09:08:51 -07:00
Behdad Esfahbod 749df4ee84 [PairPosFormat1] One more 2023-01-21 16:00:54 -07:00
Behdad Esfahbod b648ceb72f [PairSet] Optimize last commit 2023-01-21 15:58:59 -07:00
Behdad Esfahbod 891623243c [PairSet] Unify get_size() 2023-01-21 15:57:18 -07:00
Behdad Esfahbod b63159e8bf [PairPosFormat1] Fix stride
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=55287
and generally the lookup with MediumTypes.
2023-01-21 15:51:40 -07:00
Behdad Esfahbod be8a87c453 Move TRACE_DISPATCH after may_recurse()
Such that we don't get memory access issues if DEBUG_SANITIZE is
on and may_recurse() returns false.
2023-01-21 15:50:25 -07:00
Behdad Esfahbod 84b9a632ed [debug] Fix printf signness warnings 2023-01-21 14:37:34 -07:00
Khaled Hosny c08e5d094a [hb-draw] Fix MSVC warning
warning C4305: 'initializing': truncation from 'double' to 'float'
2023-01-21 15:27:56 +02:00
Matthias Clasen 32f9b467d6
Merge pull request #4045 from harfbuzz/custom-palette-cairo
Custom palette cairo
2023-01-21 02:20:39 -05:00
Matthias Clasen 47baa1da6b [hb-cairo] Fixes for sweep gradients
Make reversed angles not infloop, and
cap the number of interval repetitions
at 1000.

Fixes: https://github.com/harfbuzz/harfbuzz/issues/4055
2023-01-20 23:38:22 -05:00
Behdad Esfahbod 7f59bed528 [hb-cairo] Round foreground color 2023-01-20 16:42:55 -07:00
Behdad Esfahbod 76b059cadb [hb-cairo] Simplify foreground color fetching 2023-01-20 16:41:47 -07:00
Behdad Esfahbod f70f7194de [hb-cairo] Remove unused prototype 2023-01-20 16:30:59 -07:00
Behdad Esfahbod 61719a8350 [hb-view] Support specifying color indices again 2023-01-20 15:52:09 -07:00
Qunxin Liu 30058f489a [instancer] trim .notdef outline data after recalc bounds
If outline data present, we use it to recalc bounds and then trim it
accordingly
2023-01-20 14:50:03 -08:00
Qunxin Liu 0de7f83a9f [instancer] update maxp table 2023-01-20 14:50:03 -08:00
Qunxin Liu 94c390d078 [instancer] update head table 2023-01-20 14:50:03 -08:00
Qunxin Liu 2ecb1c31e9 [instancer] always recalculate bounds when --instance option enabled
But don't recompile glyph bytes if pinned at default
2023-01-20 14:50:03 -08:00
Qunxin Liu 1f948e7fd5 [instancer] store recalculated head/maxp info in subset plan 2023-01-20 14:49:54 -08:00
Qunxin Liu 92122421c9 [instancer] update vhea/hhea tables 2023-01-20 14:48:53 -08:00
Behdad Esfahbod ab7c914425 [hb-cairo] Macro shuffle again 2023-01-20 15:43:01 -07:00
Behdad Esfahbod 4759932bcf [hb-cairo] Round colors 2023-01-20 15:33:38 -07:00
Behdad Esfahbod 876675e090 [hb-cairo] Macro shuffling 2023-01-20 15:31:43 -07:00
Behdad Esfahbod 68a73e436a [hb-cairo] Macro hygiene 2023-01-20 15:30:07 -07:00
Khaled Hosny fcb5111cc6 [doc] Fix gtk-doc warning 2023-01-21 00:24:50 +02:00
Behdad Esfahbod 574d9344dc [hb-cairo] Fix build with old cairo 2023-01-20 15:22:50 -07:00
Behdad Esfahbod 4f19c3b3be [hb-cairo] Move color-cache to scaled-font 2023-01-20 15:15:52 -07:00
Behdad Esfahbod beba43eebe [hb-cairo] Fix color cache on not-found 2023-01-20 15:02:24 -07:00
Behdad Esfahbod cc9b55c794 [hb-cairo] Add a color cache 2023-01-20 14:57:57 -07:00
Behdad Esfahbod eb00088bcf [paint] Docs 2023-01-20 13:57:39 -07:00
Behdad Esfahbod f21b15dcc3 [hb-view] Update to alternative cairo custom-palette API 2023-01-20 13:57:39 -07:00
Behdad Esfahbod 638e0ed4fd [paint] Overlay custom-palette on top of chosen palette
Got to agree this is more ergonomic.
2023-01-20 13:57:39 -07:00
Matthias Clasen b81db8d3d8 Avoid a compiler warning 2023-01-20 13:57:39 -07:00
Behdad Esfahbod 4fe6ece425 [cairo] Don't fallback to CPAL if cairo doesn't support custom palette 2023-01-20 13:57:39 -07:00
Matthias Clasen ab37ade7e4 Hook up custom palettes for cairo 2023-01-20 13:57:39 -07:00
Behdad Esfahbod edec8946ed New API: hb_ot_layout_script_select_language2()
Variant that outputs chosen_language.

Not sure why the original API didn't have this. The script
counterpart has.
2023-01-20 09:28:59 -07:00
Behdad Esfahbod 2fd8e36ea5 [layout] Fix return value of chosen_script when matching fails 2023-01-20 09:09:14 -07:00
Behdad Esfahbod d06976e68f [glyf] Add an edge-count limit
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=55246
2023-01-20 08:21:43 -07:00
Behdad Esfahbod 0b32cf9023 [COLR] Rename a variable 2023-01-18 21:16:38 -07:00
Behdad Esfahbod 1d58c8fb0e [paint] Typo 2023-01-18 21:14:24 -07:00
Behdad Esfahbod 7aca3b5090 [COLRv1] Hook up custom palette colors 2023-01-18 21:01:44 -07:00
Behdad Esfahbod 53bd9039e7 [paint] Doc 2023-01-18 20:44:05 -07:00
Behdad Esfahbod 8afd3ccb10 [paint] Add HB_PAINT_PALETTE_INDEX_CUSTOM 2023-01-18 20:43:10 -07:00
Behdad Esfahbod 9a2f2b593e [font] Rename palette to palette_index 2023-01-18 20:39:36 -07:00
Behdad Esfahbod bd73314616 [paint] Add API for custom palettes 2023-01-18 20:37:21 -07:00
Behdad Esfahbod 13c70066de Shut up gcc 13 -Wdangling-reference
Fixes https://github.com/harfbuzz/harfbuzz/issues/4043
2023-01-18 17:29:26 -07:00
Behdad Esfahbod eed5d5efdd [VarComposite] Implement RESET_UNSPECIFIED_AXES
Fixes https://github.com/harfbuzz/boring-expansion-spec/issues/79
2023-01-18 14:13:12 -07:00
Behdad Esfahbod 4300a18b85 [arabic-fallback] Fix ligature code
Fixes https://github.com/harfbuzz/harfbuzz/issues/4042

This was broken in 20e9f0b.
2023-01-18 10:44:57 -07:00
Behdad Esfahbod 4d86c65c7a [hb-cairo] Fix linear-gradient reduce_anchors 2023-01-17 07:35:01 -07:00
Behdad Esfahbod 92d5ec2f16 [bit-page] Mark len() function static 2023-01-17 05:59:55 -07:00
Behdad Esfahbod f38e35ebc3 [cairo] Internal function renames 2023-01-16 18:07:39 -07:00
Behdad Esfahbod e4a41f5e16 [COLRv1] Implement recursive clip boxes
Tests need update.

hb-view test_glyphs-glyf_colr_1_variable.ttf -u f0c00
2023-01-16 16:27:04 -07:00
Behdad Esfahbod f11271cc03 [cairo] Version-check the variations code 2023-01-16 13:14:58 -07:00
Behdad Esfahbod a180ae43ce [bit-set] Use for loop instead of memset for page clear
Produces faster code.
2023-01-16 13:06:30 -07:00
Behdad Esfahbod ca1de29e0a [set] Adjust hb_set_copy() 2023-01-16 12:08:11 -07:00
Behdad Esfahbod b7f1c30c20 [map] Adjust hb_map_copy() 2023-01-16 12:07:15 -07:00
Behdad Esfahbod e0883d60e4 Whitespace 2023-01-16 12:02:21 -07:00
Behdad Esfahbod d769e8ae7c [hb-shape/view] Add --named-instance 2023-01-15 10:58:15 -07:00
Behdad Esfahbod 99838770ab [font] Add hb_font_get_var_named_instance()
Two new API:
+HB_FONT_NO_VAR_NAMED_INSTANCE
+hb_font_get_var_named_instance
2023-01-15 10:54:01 -07:00
Behdad Esfahbod d195e077e9 [font] Remember named_instance index
Specially, in hb_font_set_variations() default to the named_instance
for unspecified axes.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1883
2023-01-15 10:44:04 -07:00
Behdad Esfahbod d015e9016c [ms-features] Comment 2023-01-15 09:46:32 -07:00
Garret Rieger ea1ee0d4b6 [instance] drop and don't collect lookups from feature variations when fully instancing.
This previously incorrectly collected lookups that could be reached via feature variations that are dropped and not activated by the current instance position.
2023-01-14 18:04:24 -07:00
Behdad Esfahbod 81b942e363 [os2] Comment 2023-01-12 18:42:22 -07:00
Behdad Esfahbod 9fb9be8d43 [os2] Rewrite a loop 2023-01-12 18:37:45 -07:00
Behdad Esfahbod 082e5c5def [os2] Minor add a cast 2023-01-12 18:37:07 -07:00