Matthias Clasen
6079173a52
Try paint_glyph for more tables
...
If the COLR table does not paint the glyph,
try SVG, CBDT and sbix too, before giving up
on color.
2022-12-23 13:37:59 -07:00
Matthias Clasen
9461ab7088
Try paint_glyph for more tables
...
If the COLR table can't paint the glyph,
try glyf, cff1 and cff2 too.
2022-12-23 13:37:59 -07:00
Matthias Clasen
6a48ac42f4
COLR implementation
2022-12-23 13:37:59 -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
6dfd4a16e7
[ot-font] Remove stale TODO
2022-11-16 22:44:22 -07:00
Khaled Hosny
d2966d3919
[ot-font] Try CBDT extents before outline tables
...
Like we do for sbix table.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3827
2022-09-22 15:50:27 -06:00
Behdad Esfahbod
c02a1a4adc
[ot-font] Remove unused include
2022-09-20 17:40:13 -06:00
Behdad Esfahbod
d7adc55e18
[ot-font] Allow 24bit glyphs in advance cache
2022-08-04 11:40:54 -06:00
Behdad Esfahbod
ec90d1e161
[cache] Add a non-threadsafe version
...
Use in hb-ft, since already mutex'ed.
2022-08-03 13:01:04 -06:00
Behdad Esfahbod
86d1e22d4f
[atomic-ptr] Rename get
2022-08-03 13:01:04 -06:00
Behdad Esfahbod
d3f2287e0b
[atomic-int] Rename get/set
2022-08-03 13:01:04 -06:00
Behdad Esfahbod
a5d9012e94
Revert "[ot-font] Minor simplification"
...
This reverts commit 28c02b3768
.
Old code was used in case of memory allocation failure (as shown
by fuzzers...)
2022-07-29 19:51:00 -06:00
Behdad Esfahbod
28c02b3768
[ot-font] Minor simplification
2022-07-29 15:55:16 -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
f46ddeba48
[hmtx/glyf] Rename side-bearing functions for clarity
2022-07-03 13:12:49 -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
b07fa2bb1a
[ot-font] Respect VORG even if it has no variations
2022-07-03 12:39:55 -06: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
Behdad Esfahbod
a719e67887
[ot-font] Use atomic ops for cache serial number
...
This guarantees the cache is coherent.
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
5248b2567b
[ot-font/h-advance] Adjust varStore cache condition
...
This gives best performance for short strings, now that we have a h-advance cache as well.
The en-words benchmark in particular, now ot-font is faster than ft.
Second to last line is of interest:
Before:
-----------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
-----------------------------------------------------------------------------------------------------
BM_Shape/en-words.txt/Roboto-Regular.ttf/hb 29.8 ms 29.8 ms 23
BM_Shape/en-words.txt/Roboto-Regular.ttf/ft 30.4 ms 30.4 ms 23
BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/hb 16.3 ms 16.3 ms 43
BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/ft 16.5 ms 16.5 ms 42
BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/var/hb 18.0 ms 18.0 ms 39
BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/var/ft 17.8 ms 17.8 ms 39
After:
behdad@Behdads-MacBook-Pro harfbuzz % ninja -Cbuild && build/perf/benchmark-shape --benchmark_filter=en-words
-----------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
-----------------------------------------------------------------------------------------------------
BM_Shape/en-words.txt/Roboto-Regular.ttf/hb 30.0 ms 30.0 ms 23
BM_Shape/en-words.txt/Roboto-Regular.ttf/ft 30.3 ms 30.3 ms 23
BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/hb 16.3 ms 16.3 ms 43
BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/ft 16.4 ms 16.4 ms 43
BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/var/hb 17.6 ms 17.6 ms 40
BM_Shape/en-words.txt/SourceSerifVariable-Roman.ttf/var/ft 17.8 ms 17.8 ms 39
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
12fff976b6
[ot-var] Use atomic int for cached-serial
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
0919eaa6e8
[ot-font] Remove lock around cache
...
Not needed.
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
3548b6025f
[ot-font] Cache h-advances for variable fonts
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
39a07bf3eb
[ot-font] Rename cache to varStore_cache
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
970e03ecae
[ot-font] Add a hb_ot_font_t struct
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
3eb7eff487
Remove varstore cache use if HB_NO_VAR
2022-05-21 15:25:53 -06:00
Behdad Esfahbod
099482a37a
[ot-font] Cache v_advance varstore as well
2022-05-21 15:24:23 -06:00
Behdad Esfahbod
5336ba70f6
[HVAR] Cache VarStore region scalars
2022-05-21 15:12:14 -06:00
Behdad Esfahbod
1449498e1d
[ot-font] Vertically center glyph in vertical writing fallback
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/537
2022-03-21 21:40:07 -06:00
Behdad Esfahbod
bf03d7e962
[ot-font] Use ascent+descent for fallback vertical advance
...
This matches what FreeType does.
Part of fixing https://github.com/harfbuzz/harfbuzz/issues/537
2022-03-21 21:27:31 -06:00
Behdad Esfahbod
6d0e67dee0
[ot-font] Only use vmtx side-bearing if table exists
...
Part of fixing https://github.com/harfbuzz/harfbuzz/issues/537
2022-03-21 21:07:28 -06:00
Behdad Esfahbod
59067db9f4
[font/draw] Slant drawings
...
Need to update hb_font_set_synthetic_slant() docs now that we do this.
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
370bec938b
[draw] Rename internal draw_session_t to hb_draw_session_t
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
c681331c3f
[draw] Rename internal draw_helper_t to draw_session_t
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
8b4f429000
[draw] Virtualize hb_font_draw_glyph() into hb_font_get_glyph_shape()
...
To be implemented in hb-ft.
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
53eebc7cd2
[CONFIG] Add HB_NO_VERTICAL
2021-12-08 08:34:20 -08:00
Behdad Esfahbod
9bc5d2903a
[TINY] Don't disable VORG table in any config profile
...
Is needed for vertical layout of CFF fonts.
Fixes https://github.com/harfbuzz/harfbuzz/discussions/3294#discussioncomment-1770313
2021-12-08 08:16:17 -08:00
Behdad Esfahbod
ed1163208d
Call atexit() via hb_atexit()
...
Part of https://github.com/harfbuzz/harfbuzz/issues/3197
2021-09-14 07:11:46 -04:00
Nathan Willis
eb10ef46aa
[Docs] Add GTK-Doc comments for hb-ot-font and hb-ot-shape.
2020-09-26 09:46:15 +02:00
blueshade7
82545c5e2b
more coding style fixes
2019-11-26 18:34:06 +00:00
blueshade7
2e7c1239c8
minor: coding style
2019-11-26 18:34:06 +00:00
blueshade7
ff87465b40
add get_glyph_from_name & test. use hb_string_array
2019-11-26 18:34:06 +00:00
blueshade7
7b49042ef4
add cff1::get_glyph_name
2019-11-26 18:34:06 +00:00
Ebrahim Byagowi
b068e25f8f
[glyf] Address Behdad's reviews
...
Addresses https://github.com/harfbuzz/harfbuzz/pull/1999#issuecomment-539298559
* Don't check against Null pool
* Remove cryptic _tt suffix
2019-10-08 16:29:19 +03:30
Ebrahim Byagowi
d73cdcf361
[ot-font] Apply font scaling before turning to int
2019-10-08 11:11:18 +03:30
Ebrahim Byagowi
5752863640
[glyf][gvar] Make HB_NO_VAR buildable
2019-10-06 08:59:12 +03:30