|
d1be805e
|
2018-10-10T10:49:45
|
|
More rewriting plan compile
Hopefully more clear.
|
|
961ab46b
|
2018-10-10T10:42:10
|
|
More reshuffle plan compile
|
|
2091b509
|
2018-10-10T10:41:08
|
|
[kerx] Hook up to shaper
|
|
8d00c39b
|
2018-10-10T10:18:39
|
|
[kern] Minor
|
|
e655fd38
|
2018-10-10T10:16:09
|
|
Apply TT or fallback kerning when GPOS does not have kern feature
Previously we only did if there was no GPOS whatsoever. This applies
to Arial, Times New Roman, etc in Win7. Was not kerning before. It
is now.
|
|
754cf440
|
2018-10-10T10:04:05
|
|
Minor
|
|
0537a401
|
2018-10-09T23:35:07
|
|
[kerx] Comment
|
|
362d3241
|
2018-10-09T23:27:00
|
|
[aat] Rename
|
|
54c9ecb9
|
2018-10-09T23:18:19
|
|
[morx] Use subtable range for embedded sanitizer here as well
|
|
d35315cc
|
2018-10-09T23:17:32
|
|
[aat] Fixup recent commit
For 329f2401082011007d9ce12b15ce0225cd267c57
max_ops is signed.
|
|
948f59a1
|
2018-10-09T23:07:47
|
|
[kerx] Use subtable range for runtime checks
|
|
329f2401
|
2018-10-09T23:02:53
|
|
[aat] Set embedded sanitizer max ops really high
Since we consume it legitimately during shaping.
|
|
ad763074
|
2018-10-09T22:57:00
|
|
[kerx] Comment
|
|
db9600bb
|
2018-10-09T22:55:47
|
|
[kerx] Remove junk
|
|
27db8594
|
2018-10-09T22:52:41
|
|
[kern/kerx] Adjust bounds check
|
|
c66f7f8c
|
2018-10-09T22:49:33
|
|
[kerx] Implement Format2 apply()
Still, not hooked.
|
|
4b461785
|
2018-10-09T22:46:30
|
|
Fix check
|
|
4df8eb20
|
2018-10-09T22:46:12
|
|
[kern] Use kern subtable length for sanitizing in the accelerator
|
|
8bff1d29
|
2018-10-09T22:39:31
|
|
[kern] Minor
|
|
53e55945
|
2018-10-09T22:35:22
|
|
[kerx] Implement Format0 apply()
Not hooked up to be called yet.
|
|
60318f87
|
2018-10-09T22:25:53
|
|
Minor
|
|
210f899a
|
2018-10-09T21:56:37
|
|
[kern] Sanitize 4 bytes, not 2
|
|
be2f148d
|
2018-10-09T16:24:50
|
|
[ft] Use mutex to lock access to FT_Face
Makes our FT-backed hb_font_t safe to use from multiple threads. Still,
the underlying FT_Face should NOT be used from other threads by client
or other libraries.
Maybe I add a lock()/unlock() public API ala PangoFT2 and cairo-ft.
Maybe not.
|
|
d18c3c58
|
2018-10-09T16:07:55
|
|
[ft] Remove (probably) stale comment
|
|
7003b601
|
2018-10-09T15:55:26
|
|
Minor
|
|
07899435
|
2018-10-09T15:39:51
|
|
Install ot-funcs on newly created funcs
**Finally**! Casual users can stop caring about font-funcs completely now,
like they haven't been needing to care re unicode-funcs for a few years.
|
|
55153553
|
2018-10-09T15:12:09
|
|
[ot-font] Don't pre-load cmap table
Now that we have get_h_advances() and get_nominal_glyphs() implemented, the
overhead of doing a proper atomic load would be once per run, NOT once per
glyph. So, no need to pre-load the tables to avoid that overhead.
As such, hb_ot_font_set_funcs() has become really cheap. Can *finally* make
it be default font functions on all newly created fonts!
|
|
ec84460e
|
2018-10-09T15:07:04
|
|
[ot/ft] Implement get_nominal_glyphs() callback
Some more measurable speedup. The recent commits' speedups are as follows:
Testing with Roboto, ****when disabling kern and liga****:
Before:
FT --features=-kern,-liga
user↦ 0m0.521s
OT --features=-liga,-kern
user↦ 0m0.568s
After:
FT --features=-liga,-kern
user↦ 0m0.428s
OT --features=-liga,-kern
user↦ 0m0.470s
So, 17% speedup.
Note that FT callbacks are faster than OT these days since we added an advance
cache to FT. I don't think the difference is enough to justify adding a cache
to OT.
When not disabling kern, the thing is three times slower, so the speedups
are three times less impressive... Still, 5% not bad for a codebase that I
otherwise thought is optimized out.
Note that, because of this and other optimiztions in our main shaper,
disabling kern and liga, the OT shaper is now *faster* than the fallback
shaper. So, that's my recommendation to clients that need the absolute
fastest...
|
|
e883f527
|
2018-10-09T14:50:57
|
|
Call get_nominal_glyphs() for runs of simple clusters at a time
Even without FT or OT font funcs implementing get_nominal_glyphs(), there's measurable
speedup.
|
|
8008bca8
|
2018-10-09T14:38:23
|
|
Whitespace
|
|
30c114ff
|
2018-10-09T14:37:08
|
|
Avoid sort and recompose stages if all clusters simple
Even has measurable speedup...
|
|
24382deb
|
2018-10-09T14:33:24
|
|
Rewrite main normalizer loop to isolate runs of simple clusters
|
|
b5371f18
|
2018-10-09T14:12:59
|
|
Inline decompose_cluster
Towards separating the common case into its own loop.
|
|
b314c4e9
|
2018-10-09T09:23:51
|
|
[font] Add get_nominal_glyphs() callback (note the plural)
Unused as of now. To be wired up to normalizer, which would remove
overhead and allow hb-ot-font initialization to become a no-op, so
we can enable it by default.
|
|
ca6a3170
|
2018-10-09T09:06:07
|
|
Minor
|
|
8e4ad1d7
|
2018-07-25T18:12:34
|
|
builds: Fix and clean up MSVC DLL builds
Instead of passing a CFLAG/CXXFLAG to define HB_EXTERN, define it
directly in src/hb.hh as __declspec(dllexport) extern when we are
building HarfBuzz as DLLs on Visual Studio. Define HB_INTERNAL
as nothing without defining HB_NO_VISIBILITY when building HarfBuzz as
DLLs to avoid linker errors on Visual Studio builds.
Also "install" harfbuzz-subset.dll into $(PREFIX)\bin as the
hb-subset utility will depend on that DLL at runtime, when HarfBuzz is
built as DLLs. Since it consists of private APIs that are subject to
change, we do not install its headers nor .lib file.
|
|
e640f3a6
|
2018-10-09T08:28:07
|
|
Another old bot fix
|
|
e4f27f36
|
2018-10-09T08:20:10
|
|
Try fixing older bots
|
|
bee93e26
|
2018-10-09T08:01:49
|
|
Add const to get_*_advances API
Ouch!
|
|
cc126f28
|
2018-10-09T01:10:15
|
|
Minor
|
|
b2fbe55b
|
2018-10-09T01:07:36
|
|
[icu] Unbreak
|
|
a52bc039
|
2018-10-09T00:56:33
|
|
Properly remove deprecated stuff
|
|
fc509165
|
2018-10-09T00:39:42
|
|
Remove deprecated decompose_compatibility stuff
|
|
eed737f6
|
2018-10-09T00:33:30
|
|
Remove deprecated eastasian_width
|
|
47030b18
|
2018-10-09T00:30:45
|
|
[ft/ot] Remove implementation of deprecated kerning funcs
|
|
977c8a8e
|
2018-10-09T00:22:08
|
|
[kern] Minor
|
|
ed5cfa42
|
2018-10-09T00:20:35
|
|
[kern] Minor
|
|
d219f899
|
2018-10-09T00:01:09
|
|
Deprecate font kern API
|
|
a5195881
|
2018-10-08T23:57:45
|
|
Apply TrueType/OpenType kern table when GPOS kern feature is not available
Fixes https://github.com/harfbuzz/harfbuzz/issues/250
|
|
09ad2613
|
2018-10-08T23:30:24
|
|
Separate fallback kern vs mark positioning
|
|
3c23ff9b
|
2018-10-08T23:26:26
|
|
[kern] Add kerning driver to TT kern table
|
|
683c3a95
|
2018-10-08T23:09:48
|
|
[kern] Abstract away kerning machine
|
|
fb4f4383
|
2018-10-08T22:44:16
|
|
Add HB_DEPRECATED
Fixes https://github.com/harfbuzz/harfbuzz/issues/1232
|
|
80e3102b
|
2018-10-08T22:41:08
|
|
[kerx] Process coverage flags
|
|
26d7305d
|
2018-10-08T22:31:35
|
|
Deprecate decompose_compatibility stuff
|
|
42b51eee
|
2018-10-08T22:26:39
|
|
Deprecate eastasian_width stuff
|
|
286a4564
|
2018-10-08T16:41:08
|
|
Minor
|
|
c0d3bf1b
|
2018-10-08T16:32:44
|
|
Minor
|
|
1a5a3325
|
2018-10-07T23:08:39
|
|
[kerx] Minor
|
|
d62b4011
|
2018-10-07T22:58:06
|
|
[kern] Shout less
|
|
c6bb3a58
|
2018-10-07T22:52:53
|
|
[kerx] Clean up Format2
|
|
8aa83d97
|
2018-10-07T22:43:59
|
|
[kern/kerx] Fix Format2 offsetting
"The values in the right class table are stored pre-multiplied by the
number of bytes in a single kerning value, and the values in the left
class table are stored pre-multiplied by the number of bytes in one
row. This eliminates needing to multiply the row and column values
together to determine the location of the kerning value. The array can
be indexed by doing the right- and left-hand class mappings, adding the
class values to the address of the array, and fetching the kerning
value to which the new address points."
|
|
ed2a4042
|
2018-10-07T22:33:41
|
|
[kerx] Clean up Format0
|
|
4c3b19d5
|
2018-10-07T22:30:42
|
|
Support HBUINT32 BinSearchArrayOf
|
|
456a68c5
|
2018-10-07T22:28:45
|
|
Move code
|
|
3515c8b1
|
2018-10-07T22:27:00
|
|
[aat] Rename
|
|
e42cd58c
|
2018-10-07T20:46:11
|
|
Rename invisible_codepoint to invisible_glyph in API
Deleted recently added API:
hb_buffer_set_invisible_codepoint()
hb_buffer_get_invisible_codepoint()
hb-shape / hb-view --invisible-codepoint
New API:
hb_buffer_set_invisible_glyph()
hb_buffer_get_invisible_glyph()
hb-shape / hb-view --invisible-glyph
Fixes https://github.com/harfbuzz/harfbuzz/issues/1216
|
|
2a5cb37f
|
2018-10-07T20:36:46
|
|
Revert "[morx] Fix MORX-35"
This reverts commit f62f6e90ad1f1a83f77771ad65ee1ffb79470a8a.
|
|
14ebf8af
|
2018-10-07T20:35:06
|
|
[buffer] Improve shift_forward()
"Improve" is a strong word in this case though, I understand.
|
|
f62f6e90
|
2018-10-07T18:06:53
|
|
[morx] Fix MORX-35
Fixes https://github.com/harfbuzz/harfbuzz/issues/1224
|
|
94368855
|
2018-10-07T18:52:12
|
|
Remove some code
We use scratch-flags to short-circuit this function. No need for previous
early loop.
|
|
fdce1e15
|
2018-10-07T14:01:33
|
|
[kerx] Clean up kerx and KerxTable structures
|
|
71b65eb2
|
2018-10-07T18:41:52
|
|
Add API for setting invisible-codepoint
Fixes https://github.com/harfbuzz/harfbuzz/issues/1216
New API:
hb_buffer_set_invisible_codepoint()
hb_buffer_get_invisible_codepoint()
hb-shape / hb-view --invisible-codepoint
|
|
13da3be0
|
2018-10-07T18:23:45
|
|
[ot-font] Load hmtx/vmtx lazily
Since we have get_*_advanes() API now, the overhead is once per shape,
not once per glyph.
Only cmap is warmed-up at set_funcs() time now.
|
|
856db4c9
|
2018-10-07T18:21:15
|
|
Minor
|
|
b2e398c0
|
2018-10-07T16:31:33
|
|
[coretext] Fix OS X check
Fixes https://github.com/harfbuzz/harfbuzz/issues/1230
|
|
7ee50af8
|
2018-10-06T21:31:44
|
|
[morx] Fix memory access issues with unsafe_to_break
|
|
0816a549
|
2018-10-06T02:40:57
|
|
[uniscribe/coretext] Fix for previous change
|
|
341206eb
|
2018-10-05T18:39:48
|
|
[vector] Make hb_vector_t relocatable / nestable
Ugly, but...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1227
|
|
5469d807
|
2018-10-05T18:21:08
|
|
Add hb_vector_t::fini_deep ()
|
|
4831e615
|
2018-10-05T18:14:13
|
|
[morx] Fix memory access issue
If buffer was enlarged, info was being outdated.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1225
|
|
a62f37d6
|
2018-10-05T02:49:29
|
|
Change vendor features from Harf/Buzz to HARF/BUZZ
https://github.com/harfbuzz/harfbuzz/commit/a01194aaf4c15160330b4042066263b2c963b658#commitcomment-30772041
"The tag space of tags consisting of four uppercase letters (A-Z) with no punctuation,
spaces, or numbers, is reserved as a vendor space. Font vendors may use such tags to
identify private features."
|
|
a01194aa
|
2018-10-04T13:00:37
|
|
Enable two OpenType features, 'Harf' and 'Buzz'
One early, before script-specific features, one late, after. Allows font
developers to detect us and behave differently if needed.
|
|
14ff3cbe
|
2018-10-04T11:34:21
|
|
Apply morx if there's no GSUB!
|
|
3417037e
|
2018-10-04T11:08:15
|
|
[aat] Add +hb_aat_layout_has_substitution
|
|
7810bb1a
|
2018-10-04T09:24:08
|
|
[morx] Only insert glyphs at mark when a mark has been set before
This reverts commit f4072e8cb81072cd6d51a2607efedb76c02e7db1.
https://github.com/harfbuzz/harfbuzz/issues/1195
|
|
5de2d9cd
|
2018-10-04T02:14:18
|
|
Minor, fix double-promotion warnings (#1221)
|
|
e4e74c27
|
2018-10-04T02:33:26
|
|
Update Graphite API to latest (#1215)
|
|
b710ea4f
|
2018-10-03T21:17:59
|
|
Clean Fitzpatrick hack
|
|
95e5f1ae
|
2018-10-03T21:11:13
|
|
Unbreak Fitzpatrick
Fixes https://github.com/harfbuzz/harfbuzz/issues/1159
|
|
03fb6dd4
|
2018-10-03T21:02:16
|
|
Rewrite grapheme-formation in terms of new work
Also, don't attach ZWNJ to previous cluster. Closer to Unicode graphemes.
|
|
68106b1d
|
2018-10-03T20:50:12
|
|
Minor
|
|
06922acb
|
2018-10-03T20:19:17
|
|
Fix distcheck
|
|
4eea2e27
|
2018-10-03T20:16:03
|
|
[thai] Set continuation on decomposed nikhahit
|
|
8edc9102
|
2018-10-03T20:13:20
|
|
[indic] Reset continuation on inserted dottedcircle
|
|
2a6f1521
|
2018-10-03T20:09:14
|
|
[buffer] Inline some more
|
|
6f39c220
|
2018-10-03T20:06:32
|
|
Add code
|
|
19d50aa2
|
2018-10-03T20:05:28
|
|
[indic] Simplify dottedcircle
|
|
3b783185
|
2018-10-03T19:44:15
|
|
[emoji] Mark emoji contination sequences as continuation
This adds a new grapheme bit. Not used yet.
Part of https://github.com/harfbuzz/harfbuzz/issues/1159
|
|
123326e2
|
2018-10-03T19:19:51
|
|
Dotted-circle all marks, not just non-spacing, at text beginning
|