Behdad Esfahbod
5de67c8961
[ot-layout] Remove commented-out prototypes
...
Not gonna happen.
2022-02-16 17:08:19 -06:00
Behdad Esfahbod
d2998faad3
Merge pull request #3410 from harfbuzz/boring-expansion
...
[Boring Expansion] >64k loca & hmtx tables
This does two things:
The num-glyphs reported by the face now is the maximum reported by the maxp and that deduced from the length of the loca table; I think this is the right thing to do anyway; According to OpenType such loca tables are invalid.
The interpretation hmtx tables that have excessive bytes at the end, again, invalid according to OpenType, has changed. Previously we were interpreting those excessive bytes as extra lsb values. Now we interpret them as extra advance values, the last of which is repeated for all missing glyphs. Again, these are tables that are invalid according to OpenType, and the advances are for glyph indices beyond maxp table's num-glyphs.
The combined effect is that the font can have shapes and advances for gid's beyond the maxp limit of 64k. In fact, maxp table becomes optional.
2022-02-16 14:37:09 -06:00
Behdad Esfahbod
98079109e6
[ot-layout] Add +hb_ot_layout_get_horizontal_baseline_tag_for_script()
...
New API:
+hb_ot_layout_get_horizontal_baseline_tag_for_script()
2022-02-16 13:54:22 -06:00
Matthias Clasen
9909e33268
Improve docs for hb_ot_layout_get_ligature_carets
...
Add some relevant details to the documentation
for this function.
Fixes : #3168
2022-02-15 18:48:54 -06:00
Behdad Esfahbod
a396543ae1
Merge pull request #3411 from harfbuzz/draw
...
[draw] Finish and release draw API
2022-02-15 18:47:55 -06:00
Behdad Esfahbod
f567b55619
[face] Use max numGlyphs of maxp and loca
2022-02-15 18:26:43 -06:00
Behdad Esfahbod
c8fd8c1337
[ot-face] Use core tables
2022-02-15 18:13:44 -06:00
Behdad Esfahbod
2a430790ad
[machinery] Add "core table" machinery
...
To be used in subsequent commit; or tried anyway.
2022-02-15 17:53:33 -06:00
Behdad Esfahbod
67eb9acf79
[config] Add HB_NO_BORING_EXPANSION
2022-02-15 17:17:49 -06:00
Behdad Esfahbod
8b7ccc41c4
[hmtx] Implement [boring-expansion] >64k expansion
...
This implements https://github.com/be-fonts/boring-expansion-spec/issues/7
2022-02-15 14:15:12 -06:00
Behdad Esfahbod
431c948ed7
[hmtx] Document
2022-02-14 14:13:04 -06:00
Behdad Esfahbod
be4ddcc30b
[hmtx] Rename internal num_advances to num_long_metrics
2022-02-14 14:12:07 -06:00
Behdad Esfahbod
622cbc485f
[hmtx] Internal rename num_metrics to num_bearings
2022-02-14 14:09:40 -06:00
Behdad Esfahbod
ed6d287d11
[ot-face] Load num-glyphs from `loca` table before `maxp`
...
Implements [boring-expansion] [maxp] Relax
https://github.com/be-fonts/boring-expansion-spec/issues/6
2022-02-14 13:52:30 -06:00
Behdad Esfahbod
93962977bc
Remove return of void
2022-02-13 19:38:59 -06:00
Ebrahim Byagowi
d4588204e5
[draw/glyf] Emit empty contours
...
This makes it actually match freetype behaviour even though rasterizer
should filter such contours specially for stroking.
See https://github.com/harfbuzz/harfbuzz/pull/3411#discussion_r802283827 for the context.
2022-02-13 23:50:53 +03:30
Behdad Esfahbod
94517850dd
[algs] Fix typo in hb_pair_t conversion operator
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/2083
2022-02-13 13:39:26 -06:00
Khaled Hosny
f942874fac
[draw] Fix some introspection warnings
2022-02-13 13:21:15 -06:00
Behdad Esfahbod
0858463ac3
[draw/glyf] Don't skip empty contours of size 2
...
See:
https://github.com/harfbuzz/harfbuzz/pull/3411#discussion_r804988217
2022-02-13 13:21:15 -06:00
Behdad Esfahbod
57aa8c3b3a
[draw] Another try at a stable draw moveto semantic
2022-02-13 13:21:15 -06:00
Behdad Esfahbod
151f205819
[draw] Emit move_to immediately, like other operators
2022-02-13 13:21:15 -06:00
Khaled Hosny
628847b5c8
[doc] Link to respective draw callback functions
2022-02-13 13:21:14 -06:00
Khaled Hosny
7245298e25
[doc] Document HB_DRAW_STATE_DEFAULT
2022-02-13 13:21:14 -06:00
Khaled Hosny
8e892bdb54
[doc] Message draw documentation a bit
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
cdf1cb35db
[draw] Destroy callback data
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
c56c13756b
[draw] Document more
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
2376230523
[draw] Flesh out docs a bit
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
bc6c3b8401
[font] Update get_glyph_shape() doc
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
732c749ef7
[font] Adjust synthetic-slant docs
2022-02-13 13:21:14 -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
aa5c7a3811
[draw-session] Add slant
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
4f2704adb6
[draw] Add more reserved items to hb_draw_state_t
...
Since these are free basically.
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
2ce19f2868
[font/draw] Fetch shape from parent font if not implemented in font
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
d6b61dff95
[draw] Minor cleanup
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
6d5b998f25
[ft/draw] Implement hb-draw for hb-ft
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
a357e5d889
[draw] Do quadratic-to-cubic conversion in nil quadratic implementation
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
f1a9a9ccaf
[draw-state] Pass state down to callbacks
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
a9dd9f0bae
[draw] Add public move_to/line_to/... API that take a draw-state
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
ebc2a133c3
[draw] Rename internal methods
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
86fcd4fe98
[draw] Simplify start_path
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
1740916ede
[draw] Remove check for no-op
...
This is unnecessary overhead. Up to rasterizers to handle this. Plus,
this throws off point-numbers in uses that rely on it.
Disabled one test that broke with this.
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
fc78592e67
[draw-state] Add type and use in draw-helper
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
a755f93e8d
[draw] Add TODO
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
cdb1a1fc06
[draw] Add REPLACEME
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
92e6e53b30
[draw] Rename user_data to draw_data
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
3b915389b5
[draw] Remove unneeded roundf() calls
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
2bed4f46fb
[draw] Fix draw signatures
2022-02-13 13:21:14 -06:00