|
b1258cdd
|
2025-03-16T16:22:52
|
|
Merge branch 'main' into HVF
|
|
14e5a046
|
2025-03-16T00:36:11
|
|
[font] Move synthetic glyph extents into font layer
So it applies to all font-funcs.
|
|
000a0ad7
|
2025-03-15T14:37:44
|
|
[paint] Add push_font_transform() / push_inverse_font_transform()
Fixes https://github.com/harfbuzz/harfbuzz/issues/5146
|
|
5402fe24
|
2025-03-12T23:06:11
|
|
Merge branch 'main' into HVF
|
|
4807a021
|
2025-03-12T18:27:27
|
|
[atomic] Kill hb_atomic_ptr_t<T>
Use hb_atomic_t<T *> instead.
|
|
a0419a89
|
2025-03-09T05:36:00
|
|
Merge branch 'main' into HVF
|
|
4e5358a2
|
2025-03-07T15:18:28
|
|
[COLRv1] Fix comments
Fixes https://github.com/harfbuzz/harfbuzz/issues/5116
|
|
575e70b0
|
2025-03-07T12:51:44
|
|
[COLR] Use palette 0 if palette index out of range
Fixes https://github.com/harfbuzz/harfbuzz/issues/5112
|
|
6506bd7e
|
2025-03-06T20:00:54
|
|
Merge pull request #4498 from harfbuzz/PaintColrLayers
[COLRv1] Optimize PaintColrLayers instead of PaintComposite
|
|
6afcd7f6
|
2025-03-03T16:33:21
|
|
Merge branch 'main' into HVF
|
|
50fe45f4
|
2025-03-03T16:31:41
|
|
[COLR] Fix memory leak
|
|
004d0799
|
2025-03-03T02:21:05
|
|
Merge branch 'main' into HVF
|
|
e9134c8c
|
2025-03-03T02:04:34
|
|
[COLR] Reduce malloc pressure
By caching paint-extents.
|
|
9efd17e2
|
2025-03-03T01:44:01
|
|
[COLR] Switch to using (existing) accelerator
|
|
ce12c195
|
2025-03-03T02:04:34
|
|
[COLR] Reduce malloc pressure
By caching paint-extents.
|
|
3f89843d
|
2025-03-03T01:44:01
|
|
[COLR] Switch to using (existing) accelerator
|
|
b13c8127
|
2025-02-22T22:00:25
|
|
[paint] Simplify transforms
Transform nodes are rarely no-op anyway. Don't optimize them away.
|
|
4d525392
|
2025-02-22T16:43:33
|
|
[geometry] Add scale_around_center & skew_around_center
|
|
120bc2c6
|
2025-02-22T16:24:35
|
|
[paint] Add rotate_around_center
|
|
758ee5cf
|
2025-02-18T20:39:22
|
|
[COLR] Regain speed if all (normalized) coords are 0
|
|
453aea05
|
2025-03-02T16:59:19
|
|
[hvgl] Use double instead of float for coords & transforms
As "spec" requires.
|
|
a0543453
|
2025-02-26T15:36:03
|
|
[CBDT] Change has_data() to be more accurate
get_length() was returning the Null table length if table
was not present.
|
|
7504c67f
|
2025-02-26T15:24:40
|
|
[CBDT] Return immediately if no data
|
|
17a83b74
|
2025-02-26T14:40:02
|
|
[COLRv1] Optimize PaintColrLayers instead of PaintComposite
See https://github.com/googlefonts/colr-gradients-spec/issues/369#issuecomment-1816913943
and onwards.
|
|
01f02f55
|
2025-02-18T20:28:48
|
|
[COLR] Optimize NoVariation codepath
|
|
4c263ecd
|
2025-02-18T20:08:19
|
|
Merge pull request #5074 from harfbuzz/tortoise-hare
[decycler] Implement an efficient graph cycle detector
|
|
f26d9514
|
2025-02-18T20:07:25
|
|
[COLR] Fix HB_LEAN build
|
|
0aa400b1
|
2025-02-15T23:19:44
|
|
[decycler] Implement an efficient graph cycle detector
This is an algorithm I came up with, based on the Floyd's
Tortoise-Hare constant-memory linear-time linked-list cycle-detection
algorithm.
https://en.wikipedia.org/wiki/Cycle_detection#Floyd's_tortoise_and_hare
It is linear-time and malloc-free. It *eventually* detects cycles,
not immediately.
The main different with Floyd's algorithm is that this algorithm
detects cycles when one is traversing down a graph, not just a
linked list.
Our existing cycle-detection algorithms use a set-of-integers,
either hb_set_t, or more efficient in this case, hb_map_t. Those
include at least one malloc, and as such show up on profiles.
Port hb-ot-font COLRv1 to use the decycler instead of previous
hb_map_t usage for cycle detection.
benchmark-font paint_glyph on NotoColorEmoji-Regular.ttf:
Before: 8ms; After: 5.5ms. No cycle detection: 5.5ms.
FT COLRv1 API is so slow (174ms) it's not worth porting to this.
Other graphs (VARC, etc) to be ported.
Test and documentation to be added.
|
|
ed76c855
|
2025-02-18T20:01:36
|
|
[COLR] Optimize palette access
|
|
016e78b6
|
2025-02-18T19:49:48
|
|
[COLR] Micro-optimize
|
|
de7f97b7
|
2024-11-15T15:14:37
|
|
[COLR] Add comment
|
|
6a25df24
|
2024-10-09T14:09:22
|
|
[COLR] Add and use get_clip_list ()
|
|
5462978c
|
2024-10-09T13:43:13
|
|
[COLR] Lets see if this makes CIFUZZ any happier
|
|
008505e1
|
2024-10-08T09:27:09
|
|
[COLR] Pepper some hb_barrier()'s around
The version is a minor version (because uint16), as such
version > 1 should be considered as supporting version 1
data.
|
|
cec95a2d
|
2024-10-07T21:06:56
|
|
Try to fix heap-buffer-overflow
|
|
4d1f6e04
|
2024-10-06T18:25:24
|
|
[COLR] Enable COLRv0 support in get_extents()
paint_glyph() supports COLRv0 but this code is never reached because of
the early return if version is not 1. This early return seems to be from
before COLRv0 extents were supported.
|
|
72502ef0
|
2024-08-12T14:08:06
|
|
[instancer] dont return false when variation data is empty after partial instancing
|
|
0037ee28
|
2024-05-24T08:10:15
|
|
Merge pull request #4578 from harfbuzz/varc-table
`VARC` table
|
|
6c898572
|
2024-05-02T10:11:06
|
|
fix bots
|
|
247039de
|
2024-04-26T13:36:52
|
|
[instancer] partial instantiating support for COLRv1
Also add subset support for COLRv1 VarStore/DeltaSetIndexMap
|
|
c04d0a29
|
2024-04-25T14:57:36
|
|
[subset] generate colrv1 varsotre inner_maps in the plan
Also merge remap_variation_indices APIs used by GDEF and BASE into 1
|
|
690893e3
|
2023-10-02T09:09:53
|
|
[subset] collect variation indices for COLRv1
|
|
c270a254
|
2024-04-23T14:40:06
|
|
[COLR] Remove redundant variable
|
|
3d846a8d
|
2024-03-16T21:49:17
|
|
[limits] Centralize graph edge limits
|
|
031fdb1c
|
2024-02-06T14:51:41
|
|
Rename VarStoreInstancer to ItemVarStoreInstancer
|
|
1cb47eff
|
2024-02-06T14:49:31
|
|
Rename VariationStore to ItemVariationStore
|
|
2f528ce4
|
2023-11-06T11:40:19
|
|
Tweak a couple more barriers
|
|
3a9262cc
|
2023-11-04T12:52:46
|
|
[sanitize] More hb_barrier() annotations
|
|
30672c7e
|
2023-11-03T18:52:03
|
|
Add hb_barrier()
And annotate some more.
|
|
56e8a290
|
2023-08-22T15:49:00
|
|
Fix static_size declaration
I have a vague memory that it was intentionally written
that way, but I can't recall :-(.
|
|
06ff3bcb
|
2023-08-15T14:41:18
|
|
[COLR,glyf] Use map instead of set for tracking current glyphs / layers
|
|
8f039ab4
|
2023-08-15T11:27:19
|
|
[COLR] Avoid infinite-loop through PaintColrLayers
Fixes https://github.com/harfbuzz/harfbuzz/issues/4376
Fixes https://oss-fuzz.com/testcase-detail/5717524023738368
|
|
0c80aec1
|
2023-08-15T10:30:38
|
|
[COLR] Move cycle-detection to the renderer instead of cairo
Alternative fix for https://github.com/harfbuzz/harfbuzz/issues/4375
|
|
58effbcc
|
2023-08-14T16:47:01
|
|
.
|
|
74527670
|
2023-08-14T15:57:24
|
|
[COLR/cairo] Add paint_color_glyph func
Implement in cairo to use scaled-font's glyph cache.
|
|
45c1ad05
|
2023-08-09T10:27:45
|
|
[paint] Add tracing
|
|
49dbe0cd
|
2023-08-06T15:07:57
|
|
Another try
|
|
7989702a
|
2023-08-06T14:17:50
|
|
Audit and fix up serialize_subset uses
Fixes https://github.com/harfbuzz/harfbuzz/issues/4362
|
|
25297408
|
2023-07-03T10:34:26
|
|
[COLR] Fix PaintComposite sanitize timeout
Was timing out after recent sanitize() change.
Fixes https://oss-fuzz.com/testcase-detail/5692635449524224
|
|
82741304
|
2023-06-04T09:41:41
|
|
[subset] start_embed never returns nullptr
Remove checks.
|
|
b5792f11
|
2023-06-03T22:24:06
|
|
[subset] Reuse num_glyphs in various places
|
|
e826d94a
|
2023-04-30T11:11:19
|
|
Call roundf() instead of _hb_roundf()
The former is defined as a macro expanding to the latter.
|
|
d1c00c04
|
2023-04-24T13:24:47
|
|
[COLR] Respect HB_NO_PAINT
Fixes https://github.com/harfbuzz/harfbuzz/issues/4204
|
|
fe671a5a
|
2023-03-16T14:10:21
|
|
[instancer] support COLRv1 full instancing
|
|
09a26623
|
2023-03-14T12:48:12
|
|
Merge pull request #4168 from googlefonts/subset_name_collect
[subset] name_id closure
|
|
75e6498d
|
2023-03-14T12:41:46
|
|
Don't use M_PI
Fixes https://github.com/harfbuzz/harfbuzz/issues/4166
Happy Pi Day!
|
|
de6533d8
|
2023-03-13T13:36:00
|
|
[subset] collect name_ids from CPAL table
|
|
7b77cd19
|
2023-03-13T12:45:43
|
|
[subset] fix bug in CPAL V1tail serialization
We should serialize nameIDs rather than retained color index
|
|
ae96295d
|
2023-01-28T22:12:33
|
|
Delete commented out include
|
|
b8193357
|
2023-01-28T00:00:30
|
|
[OT::Color] Drop unused includes
|
|
0f33ea8c
|
2023-01-27T11:26:57
|
|
[subset/COLR] Copy VarStore
Fixes https://github.com/harfbuzz/harfbuzz/issues/4085
|
|
72e13fff
|
2023-01-24T11:05:38
|
|
[COLRv1] Handle void extents
|
|
20318fed
|
2023-01-24T11:04:10
|
|
[COLRv1] Don't return extents if glyph has no paint
Fixes https://github.com/harfbuzz/harfbuzz/issues/4068
|
|
be8a87c4
|
2023-01-21T15:00:41
|
|
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.
|
|
638e0ed4
|
2023-01-20T13:01:22
|
|
[paint] Overlay custom-palette on top of chosen palette
Got to agree this is more ergonomic.
|
|
0b32cf90
|
2023-01-18T21:16:38
|
|
[COLR] Rename a variable
|
|
7aca3b50
|
2023-01-18T20:49:06
|
|
[COLRv1] Hook up custom palette colors
|
|
e4a41f5e
|
2023-01-16T16:27:04
|
|
[COLRv1] Implement recursive clip boxes
Tests need update.
hb-view test_glyphs-glyf_colr_1_variable.ttf -u f0c00
|
|
9c45d98f
|
2023-01-11T11:16:18
|
|
[subset-plan] Simplify colr_palettes allocation
|
|
b74a2651
|
2023-01-11T11:15:15
|
|
[subset-plan] Simplify colrv1_layers allocation
|
|
5fc91de2
|
2023-01-11T11:04:17
|
|
[shape-plan] Simplify _glyphset_colred allocation
|
|
02751514
|
2023-01-09T12:26:39
|
|
[paint] Align deptch/edge count conditions across two backends
|
|
f46dcf14
|
2023-01-08T14:33:54
|
|
[paint/COLR] Fix clip transform
Sigh. So complicated.
|
|
f283d4d3
|
2023-01-08T12:42:34
|
|
[paint] Try to adjust both renderers to use same clip order
|
|
5bd6fc1a
|
2023-01-07T16:32:50
|
|
Comment
|
|
432afa9d
|
2023-01-07T16:25:30
|
|
[paint] Fix paint_extents usage
It was broken all this time :(.
The two backends do this slightly differently...
|
|
65c3cde5
|
2023-01-07T14:29:18
|
|
[COLRv1] Fix scale variation
|
|
dfd9bf8a
|
2023-01-07T14:05:02
|
|
[COLRv1] Fix a couple of missing to_float() calls
Ouch!
|
|
d045de78
|
2023-01-07T13:55:17
|
|
[paint] Optimize PAINT_COMPOSITE
At the start of each paint call the current group is clear.
So we don't need to start a new group for the backdrop paint.
A paint composite really needs one group push, not two.
|
|
4adc748b
|
2023-01-01T09:46:11
|
|
Move Color tables to src/OT/Color/
|