Matthias Clasen
3937d6b0aa
Implement hb_color_line_t
2022-12-23 13:37:59 -07:00
Matthias Clasen
64f1b55d01
api fixes: use floats consistently
2022-12-23 13:37:59 -07:00
Matthias Clasen
627c857f8b
rename pop_group_and_composite
2022-12-23 13:37:59 -07:00
Matthias Clasen
c9350838c7
assorted fixes and changes
2022-12-23 13:37:59 -07:00
Matthias Clasen
42324aef2b
hb-paint: annotation fix
2022-12-23 13:37:59 -07:00
Matthias Clasen
8377341b28
wip: implement paint_glyph
2022-12-23 13:37:59 -07:00
Matthias Clasen
efe13a191d
fix introspection
2022-12-23 13:37:59 -07:00
Matthias Clasen
6a48ac42f4
COLR implementation
2022-12-23 13:37:59 -07:00
Matthias Clasen
71efa0dcf1
wip: hb_font_paint_glyph
2022-12-23 13:37:59 -07:00
Matthias Clasen
83d0a49f71
wip: hb-paint
2022-12-23 13:37:59 -07:00
Matthias Clasen
30c5402e3d
Make hb-features.h usable standalone
...
The intended use for hb-features.h is to
be included standalone, so we can't put
the single-include guards in here.
2022-12-23 12:33:28 -07:00
Behdad Esfahbod
d628aff9db
[ft] Apply slant in get_glyph_extents
2022-12-22 10:53:37 -07:00
Behdad Esfahbod
9a0ebd2b2a
[glyf] Fix slant-scaling in GlyphHeader too
2022-12-22 10:21:50 -07:00
Behdad Esfahbod
392463bff5
[cff] Fix extent rounding
...
I broke it in b0abbfd868
.
2022-12-22 08:34:01 -07:00
Behdad Esfahbod
897c102703
[font] Fix scale_glyph_extents
2022-12-22 08:15:01 -07:00
Behdad Esfahbod
9194e13e25
[font] Apply slant to glyph extents
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3952
hb-ft not fixed since doesn't use this code.
2022-12-22 07:32:29 -07:00
Behdad Esfahbod
b0abbfd868
[font] Centralize glyph-extents scaling
...
Needs more testing...
Some rounding was removed, namely in cff1 and cff2.
2022-12-22 07:32:15 -07:00
Behdad Esfahbod
97b8ada865
[varc] Reset component coordinates to that of the font
...
Fixes https://github.com/harfbuzz/boring-expansion-spec/issues/78
2022-12-21 19:52:20 -07:00
Garret Rieger
40342c9437
[subset] check for addition overflow in hdmx size calculation.
...
Fixes https://oss-fuzz.com/testcase-detail/4877336988483584 .
2022-12-21 16:44:06 -07:00
Garret Rieger
d77fca997e
[subset] when subsetting preprocessor fails, reference the returned face.
...
The caller of the method is expected to destroy the returned result.
2022-12-21 15:04:27 -07:00
Behdad Esfahbod
9b5b4da0e4
[varc] Set coordinates as absolute values
2022-12-20 09:58:04 -07:00
Behdad Esfahbod
80e68f09c5
[VarC] Change rotation/skew representation
...
Fixes https://github.com/harfbuzz/boring-expansion-spec/issues/77
2022-12-19 19:17:04 -07:00
Garret Rieger
1840b02e6a
[subset] Don't gate access to the table repacker.
...
Any table with an object graph should repack correctly.
2022-12-19 17:57:33 -07:00
Behdad Esfahbod
03a1685693
[VarC] Change representation of scale from 4.12 to 6.10
...
Fixes https://github.com/harfbuzz/boring-expansion-spec/issues/76
2022-12-19 17:12:09 -07:00
Matthias Clasen
c292e577ff
Fix a typo
2022-12-19 20:04:36 +02:00
Matthias Clasen
b795246fff
[draw] Clarify the docs
...
Disambiguate the origin of draw_data and user_data,
this had me confused a few times.
Fixes: https://github.com/harfbuzz/harfbuzz/issues/3955
2022-12-19 20:04:36 +02:00
Matthias Clasen
eddb408f9c
[draw] Small doc fix
2022-12-19 20:03:57 +02:00
Khaled Hosny
bc4c290b75
[doc] Workaround gtk-doc limitation with HB_DEPRECATED_FOR
...
See https://github.com/harfbuzz/harfbuzz/issues/3957#issuecomment-1356890525
2022-12-19 00:59:50 +02:00
Khaled Hosny
f9e1192d58
[ot-tag] Document two deprecated symbols
...
See https://github.com/harfbuzz/harfbuzz/issues/3957
2022-12-18 23:58:36 +02:00
Khaled Hosny
947e01a7c1
[subset] Suppress gtk-doc warning
2022-12-18 23:40:01 +02:00
Nirbheek Chauhan
7be06f6377
meson: Override dependencies to improve usage as a subproject
...
With this change, harfbuzz can be consumed as a subproject without
making any changes to the build files of a project. All you need to do
is provide a wrap file with a `[provide]` section:
https://mesonbuild.com/Wrap-dependency-system-manual.html#provide-section
This is also necessary because otherwise projects need to hard-code
the subproject name, which might be `harfbuzz` when using `wrap-git` or
`harfbuzz-6.0.0` when using `wrap-file` (to build from a release
tarball). This can cause conflicts between different subprojects that
consume harfbuzz differently.
Other projects like glib, cairo, pango, etc already do this.
2022-12-18 08:28:55 +02:00
Behdad Esfahbod
206957aee4
[COLR] Change recursion limit back to 128
2022-12-17 08:57:56 -07:00
Khaled Hosny
afcae83a06
6.0.0
2022-12-16 23:35:26 +02:00
Matthias Clasen
a98c6fdd92
Mark an argument as unused
2022-12-16 13:23:01 -07:00
Matthias Clasen
601d3806c9
COLRv1: Revamp extents variation
...
Try to do this a cleaner way.
2022-12-16 13:23:01 -07:00
Behdad Esfahbod
51a17201a7
[open-type] In to_float() take offset as float
2022-12-16 12:28:50 -07:00
Behdad Esfahbod
f252cf80e1
[open-type] Allow passing an offset to to_float()
2022-12-16 12:03:51 -07:00
Behdad Esfahbod
6ae35365f8
Fix build
2022-12-16 11:43:38 -07:00
Behdad Esfahbod
e957391efe
[colr] Add NoVariable::varIdxBase
2022-12-16 11:33:04 -07:00
Behdad Esfahbod
e06de98c36
[var-common] Make VarInstancer take an offset
2022-12-16 11:31:00 -07:00
Behdad Esfahbod
251f9f6213
[open-type] Add VarIdx::add()
2022-12-16 11:29:51 -07:00
Behdad Esfahbod
bf2ae3f0ca
[open-type] Add static_assert for NO_VARIATION
2022-12-16 11:26:24 -07:00
Matthias Clasen
d4496e6405
COLRv1: Apply variations correctly
...
The variations are for xMin, yMin, xMAx, yMax.
Apply them before converting to extents..
2022-12-16 11:14:42 -07:00
Matthias Clasen
193e0e3e8e
Cosmetic: typo fix
2022-12-14 22:34:06 -07:00
Garret Rieger
b5acde43ed
[subset] check pending/subsetted tag sets for alloc failure.
2022-12-13 15:31:40 -07:00
Jordan Petridis
79285a9983
VarC: cast ints ( #3934 )
...
msvc is rightfully complaining that the types on the sides of
the ternary are not matching:
```
C:\pango\subprojects\harfbuzz\src\OT\glyf\VarCompositeGlyph.hh(317): error C2446: ':': no conversion from 'const OT::HBUINT16' to 'const OT::HBUINT8'
```
2022-12-13 11:14:20 -07:00
Behdad Esfahbod
300d82ce2e
Fix compiler warning
2022-12-13 11:01:03 -07:00
Behdad Esfahbod
199345eb29
Merge pull request #3928 from harfbuzz/colrv1-extents
...
COLRv1: use ClipBoxes for extents
2022-12-12 18:37:10 -07:00
Behdad Esfahbod
bd7cb384cf
[VarC] Remove unused variable
2022-12-12 14:10:48 -07:00
Behdad Esfahbod
51d3ce39ba
Merge pull request #3933 from googlefonts/cff
...
[subset] Fix infinite loop when instancing CFF fonts
2022-12-12 14:07:44 -07:00
Behdad Esfahbod
1b278c7658
[VarC] Update for new format
...
https://github.com/harfbuzz/boring-expansion-spec/issues/71
2022-12-12 13:57:05 -07:00
Garret Rieger
64cbe8b962
[subset] Also note that only full instancing works.
2022-12-12 20:41:40 +00:00
Garret Rieger
0da59f86a8
[subset] note that CFF/CFF2 instancing is not yet supported.
2022-12-12 20:26:11 +00:00
Garret Rieger
38a9628885
[subset] simplify handling of table subsetting depedencies.
...
Allow the dependency checker to see all tables that will be subset. Use this to fix the HMTX/VMTX dep check against glyf. Don't delay hmtx/vmtx subsetting if no glyf table is present.
2022-12-12 20:13:17 +00:00
Garret Rieger
0853e5d9d7
[subset] if table dependencies can't be resolved fail the subset.
...
Avoids getting stuck in an infinite loop.
2022-12-12 19:43:31 +00:00
Behdad Esfahbod
6bb478eeeb
[VarC] Clamp after addition
2022-12-12 11:39:06 -07:00
Behdad Esfahbod
80a5011eb6
[VarC] Fix coord setting
...
Those are additive.
2022-12-12 11:37:59 -07:00
Behdad Esfahbod
4e9a6cfb49
[COLR] Use VarStoreInstancer
2022-12-12 10:20:51 -07:00
Behdad Esfahbod
a3a3d37b95
[var] Add VarStoreInstancer
2022-12-12 10:17:41 -07:00
Behdad Esfahbod
c64661b2f8
[COLR] Fix variation code
2022-12-12 10:11:02 -07:00
Behdad Esfahbod
ff332b14ea
[COLR] Handle HB_OT_LAYOUT_NO_VARIATIONS_INDEX
2022-12-11 21:05:14 -07:00
Behdad Esfahbod
9a3f0be291
[COLR] Apply variations in get_extent
2022-12-11 13:40:53 -07:00
Behdad Esfahbod
68964efa55
[COLR] Use bsearch in get_extents
2022-12-11 13:21:01 -07:00
Behdad Esfahbod
d0ee5a452f
[COLR] Return false from get_extents if table version not 1
2022-12-11 13:13:35 -07:00
Behdad Esfahbod
b3d6a5ef86
[colr] Minor no behavior change
2022-12-11 13:12:30 -07:00
Matthias Clasen
7a748ad4ac
COLRv1: use ClipBoxes for extents
...
This is a first step; ultimatively, we
should compute the extents is ClipBoxes
are missing.
2022-12-11 13:12:30 -07:00
Behdad Esfahbod
d36a0f8c42
[COLR] Add TODO
2022-12-11 13:12:19 -07:00
Behdad Esfahbod
a306820681
[colr] Use SortedArray instead of Array
2022-12-11 13:03:55 -07:00
Behdad Esfahbod
b9d5e7a8bb
[colr] Set HB_COLRV1_MAX_NESTING_LEVEL to 16
...
Was 100. That seemed excessive.
2022-12-11 12:54:19 -07:00
Behdad Esfahbod
c17afa48de
[colr] Remove COLRV1_ENABLE_SUBSETTING
2022-12-11 12:53:55 -07:00
Behdad Esfahbod
9ab2c8034e
Revert "[glyf] Use component phantom points after transformation"
...
This reverts commit a756bd1944
.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3929
2022-12-11 12:04:29 -07:00
Behdad Esfahbod
7f73b57bc1
[subset] Graduate L1 instancing API from experimental
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3926
2022-12-10 17:35:52 -07:00
Khaled Hosny
0f4e38cd86
[subset] Small doc fixes
2022-12-10 16:39:26 +02:00
Behdad Esfahbod
bf2e817549
[VarComposites] Support GID24
2022-12-09 23:15:26 -07:00
Behdad Esfahbod
10d38dcdfd
[varc] Change format slightly
...
Fixes https://github.com/harfbuzz/boring-expansion-spec/issues/70
2022-12-09 19:19:57 -07:00
Behdad Esfahbod
af450a757d
[config] Use HB_EXPERIMENTAL_API instead of adhoc HB_EXPERIMENTAL
2022-12-09 19:05:16 -07:00
Behdad Esfahbod
5cf0b9ae7d
[varc] Mark as experimental feature with HB_NO_VAR_COMPOSITES
2022-12-09 18:59:43 -07:00
Behdad Esfahbod
82b4f3791e
[coord-setter] Don't modify font coords
2022-12-09 18:46:33 -07:00
Behdad Esfahbod
e9e503b80b
[Glyph] Pass down coords to get_points
2022-12-09 18:42:46 -07:00
Behdad Esfahbod
8e46870093
[gvar] Take coords in instead of font in apply_deltas_to_points
2022-12-09 18:35:30 -07:00
Behdad Esfahbod
3caa42a4a7
Fix build after rebase
2022-12-09 14:48:41 -07:00
Behdad Esfahbod
bbe59e4211
Whitespace
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
13deea7cbd
[glyf/VarComposite] Clamp axis coordinates
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
a975be4c07
[glyf/VarComposite] Minor rename
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
1e71db2d26
[glyf/VarComposite] Fix transformation
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
1233be61d8
[glyf/VarComposite] Remove unneeded resize
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
1a906162cb
[glyf/coord-setter] Fix memory issue
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
7efd68da39
[glyf/VarComposite] Set coordinates
...
Code is untested but complete!
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
4ec7781497
[glyf] Move coord-setter to its own file
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
dadb4ed71d
[glyf/VarComposite] More, almost there
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
0a939b48a6
[glyf/VarComposite] Implement more
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
65cc3b5e2b
[glyf/VarComposite] More
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
12688ed386
[glyf] Fix distcheck
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
60d959a6e7
[glyf/VarComposite] Add use_my_metrics()
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
575d99406a
[glyf] Flesh out VarCompositeGlyph
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
21f671bc45
[glyf] Add stub VarCompositeGlyph
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
435c5eeffe
[glyf] Split composite-iter
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
1024a013fd
[glyf] Add CoordSetter
2022-12-09 14:45:29 -07:00
Garret Rieger
e66d02126e
[subset] replace subset-processing.md reference with link to it on github.
2022-12-08 16:32:24 -07:00
Garret Rieger
27201ed32b
[subset] fix up hb_subset_preprocess api comment.
2022-12-08 16:32:24 -07:00