|
9879fc1d
|
2016-05-02T10:29:12
|
|
[ot-font] Remove unused 'post' table include for now
To make a release...
|
|
f00ab2a3
|
2016-05-02T10:24:00
|
|
[hb-ot-font] Make 'glyf' table loading lazy
Apparently some clients have reference-table callbacks that copy the table.
As such, avoid loading 'glyf' table which is only needed if fallback positioning
happens.
|
|
587d4622
|
2016-04-30T19:20:56
|
|
[ot-font] Start implementing 'post' table, for accessing glyph names
|
|
9abaaac4
|
2016-04-27T03:38:24
|
|
Merge commit '264b7a728a41becfbf23ce258fc2a3af19d0cbbe' into HEAD
|
|
2f560ee4
|
2016-04-27T03:11:41
|
|
[tibetan] Reorder marks to better match Uniscribe
Fixes https://github.com/behdad/harfbuzz/issues/237
Note that Uniscribe enforces a certain syllable order. We don't.
But with this change, I get all of the tibetan contractions pass
with Microsoft Himalaya font.
|
|
adafdcdd
|
2015-11-07T23:37:21
|
|
Mass-added “difficult” tags – to be curated.
|
|
3d6a2c0d
|
2015-11-07T22:59:13
|
|
Initial import of missing OpenType 1.7 language tags.
|
|
7e2da035
|
2016-04-26T16:42:25
|
|
Undo accidental change
|
|
b2030502
|
2016-04-26T16:41:17
|
|
Do NOT ignore Mongolian Free Variation Selectors during matching
Fixes https://github.com/behdad/harfbuzz/issues/234
|
|
21ab5501
|
2016-04-26T16:02:04
|
|
Move ZWJ/ZWNJ bits to top byte of unicode_props()
To make room to remember Mongolian Free Variation Selectors.
Part of fixing https://github.com/behdad/harfbuzz/issues/234
|
|
29393884
|
2016-04-26T10:35:23
|
|
Annotate blacklisted fonts with their sha1sum
|
|
5069062d
|
2016-04-26T12:02:26
|
|
Unbreak build on Windows CE
0475ef2f97e3035a2eea9a0f96031331e07e8e29 broke the build by using
vsnprintf(), which is not defined on Windows CE
|
|
1c625dff
|
2016-04-09T12:53:23
|
|
Minor
|
|
851b0db3
|
2016-04-08T23:46:55
|
|
Minor. We should never get to this branch, but fix it anyway.
|
|
4f3d59a1
|
2016-04-08T13:41:20
|
|
Blacklist another set of timesi.ttf and timesbi.ttf
|
|
ef476be8
|
2016-04-08T13:16:33
|
|
Merge pull request #239 from ebraminio/dwfix
Improve DirectWrite backend
|
|
d3134a66
|
2016-04-05T21:01:05
|
|
Fix when no feature is given
|
|
59089622
|
2016-04-04T14:54:32
|
|
[coretext] Clarify comment
|
|
6dd80faf
|
2016-04-04T14:34:25
|
|
Fix FixedVersion::to_int()
Ouch. Had broken it in 9a13ed453ef96822a47d6e6f58332b87f38d5c59
Fixes https://github.com/behdad/harfbuzz/issues/238
Will add test soon.
|
|
4a104021
|
2016-04-02T13:47:59
|
|
Hide justification behind HB_DIRECTWRITE_EXPERIMENTAL_JUSTIFICATION
|
|
63ee9ca5
|
2016-04-01T15:47:07
|
|
Use standard types instead Windows favourites ones
|
|
adf20ba0
|
2016-04-01T15:36:40
|
|
Limit GetJustifiedGlyphs only to scripts with custom justification character
|
|
32ae9d1b
|
2016-04-01T06:39:57
|
|
Add justification support
|
|
10c3d9e4
|
2016-03-31T18:19:44
|
|
Basic opentype features support
|
|
d1298971
|
2016-03-31T13:45:37
|
|
Refactor and remove dupe getglyphs call
|
|
5f1a8961
|
2016-03-31T12:26:16
|
|
Better glyph offset support
|
|
d691ba3f
|
2016-03-30T20:21:40
|
|
Don't fail when language is not set
|
|
1c00a46c
|
2016-03-30T20:15:09
|
|
Make DirectWrite backend to work with different font sizes
Actually copyedited same logic from Uniscribe to make it just work
|
|
69f9fbc4
|
2016-03-17T11:59:43
|
|
Synthesize GDEF glyph class for any glyph that does not have one in GDEF
Previously we only synthesized GDEF glyph classes if the glyphClassDef
array in GDEF was null. This worked well enough, and is indeed what
OpenType requires: "If the font does not include a GlyphClassDef table,
the client must define and maintain this information when using the
GSUB and GPOS tables." That sentence does not quite make sense since
one needs Unicode properties as well, but is close enough.
However, looks like Arial Unicode as shipped on WinXP, does have GDEF
glyph class array, but defines no classes for Hebrew. This results
in Hebrew marks not getting their widths zeroed. So, with this change,
we synthesize glyph class for any glyph that is not specified in the
GDEF glyph class table. Since, from our point of view, a glyph not
being listed in that table is a font bug, any unwanted consequence of
this change is a font bug :).
Note that we still don't get the same rendering as Uniscribe, since
Uniscribe seems to do fallback positioning as well, even though the
font does have a GPOS table (which does NOT cover Hebrew!). We are
not going to try to match that though.
Test string for Arial Unicode:
U+05E9,U+05B8,U+05C1,U+05DC
Before: [gid1166=3+991|gid1142=0+737|gid5798=0+1434]
After: [gid1166=3+991|gid1142=0+0|gid5798=0+1434]
Uniscribe: [gid1166=3+991|gid1142=0@348,0+0|gid5798=0+1434]
Note that our new output matches what we were generating until July
2014, because the Hebrew shaper used to zero mark advances based on
Unicode, NOT GDEF. That's 9e834e29e0b657f0555df1ab9cea79ff7abcf08d.
Reported by Greg Douglas.
|
|
fef5dd9a
|
2016-03-12T19:15:15
|
|
Merge pull request #232 from c0nk/wip-icu
Add --with-icu=builtin option; fix compile error
|
|
3e10460a
|
2016-03-11T18:45:19
|
|
Minor comment
|
|
d14fea4b
|
2016-03-08T12:16:41
|
|
Remove default clause in minor switch statements
Bending to clang warnings...
https://bugs.chromium.org/p/chromium/issues/detail?id=593057
|
|
ce8ae997
|
2016-03-04T17:20:35
|
|
Merge pull request #231 from KonstantinRitt/post123buildfix
Fix build with HB_DISABLE_DEPRECATED
|
|
731a430c
|
2016-03-02T13:32:42
|
|
Fix requiredFeature stage handling logic
Originally the way Jonathan had written this was correct in
"continue"ing:
https://github.com/jfkthame/harfbuzz/commit/35e28c7a733eaffcd9f062b18d7db9fbb3d990fc#diff-ead86a33a5cc9ad7f6e6381031a0baddR199
When I rewrote his patch, I messed it up:
https://github.com/behdad/harfbuzz/commit/da132937989acb4d8ca9bd41c79f98750e7dda30#diff-ead86a33a5cc9ad7f6e6381031a0baddR209
the intended behavior was NOT to set found=TRUE and NOT to continue.
This was resulting in feature_index[table_index] being left unset.
Oops!
|
|
68b6296d
|
2016-03-01T16:41:53
|
|
Add F2DOT14 type
|
|
082b79fe
|
2016-03-01T16:41:26
|
|
Use FWORD and UFWORD when it makes sense
I had forgotten about those types.
|
|
5f995db1
|
2016-02-26T00:36:17
|
|
Fix missing ICU #include
Fix compile error in hb-icu.cc when ICU configured with
U_NO_DEFAULT_INCLUDE_UTF_HEADERS=1
|
|
b424b6c3
|
2016-02-26T00:35:15
|
|
Add --with-icu=builtin configure option
|
|
71248a84
|
2016-02-25T18:55:28
|
|
Fix build with HB_DISABLE_DEPRECATED
When HB_DISABLE_DEPRECATED is defined, no code from hb-deprecated.h
should be used, even from within HB itself.
|
|
0c7fb741
|
2016-02-25T14:40:09
|
|
Speed up buffer variable allocation sanity check
This makes defining HB_NDEBUG much less relevant, to the
point of irrelevance. Sorry about all the fuss in previous
release!
|
|
91dd1156
|
2016-02-25T13:56:47
|
|
Add HB_NDEBUG
API changes:
- If NDEBUG is defined, define HB_NDEBUG
- Disable costlier sanity checks if HB_NDEBUG is defined.
In 1.2.3 introduced some code to disable costly sanity checks if
NDEBUG is defined. NDEBUG, however, disables all assert()s as
well. With HB_NDEBUG, one can disable costlier checks but keep
assert()s.
I'll probably add a way to define HB_NDEBUG automatically in
release tarballs. But for now, production systems that do NOT
define NDEBUG, are encouraged to define HB_NDEBUG for our build.
|
|
98816502
|
2016-02-25T12:23:02
|
|
Disable internal buffer variable bookkeeping in NDEBUG builds
Saves some sweet time and binary size!
|
|
94dd0bb7
|
2016-02-25T11:31:03
|
|
Add blacklist signature for Times New Roman (Bold) Italic on OS X
|
|
e23cf902
|
2016-02-25T11:11:15
|
|
Blacklist GDEF table of timesi.ttf and timesbi.ttf on Win 7
See discussion:
https://lists.freedesktop.org/archives/harfbuzz/2016-February/005489.html
|
|
c335fd79
|
2016-02-25T09:16:05
|
|
In trampoline implementation of get_glyph(), don't destroy user data twice!
|
|
23335dea
|
2016-02-24T20:27:13
|
|
[ot-font] Accelerate cmap format4 get_glyph
|
|
e0f16a71
|
2016-02-24T19:52:36
|
|
[ot-font] Towards accelerating get_glyph()
|
|
5473ebfb
|
2016-02-24T19:32:43
|
|
[ot-font] Remove level of indirection in get_glyph_variant
|
|
8b5bc141
|
2016-02-24T19:05:23
|
|
Add get_nominal_glyph() and get_variation_glyph() instead of get_glyph()
New API:
- hb_font_get_nominal_glyph_func_t
- hb_font_get_variation_glyph_func_t
- hb_font_funcs_set_nominal_glyph_func()
- hb_font_funcs_set_variation_glyph_func()
- hb_font_get_nominal_glyph()
- hb_font_get_variation_glyph()
Deprecated API:
- hb_font_get_glyph_func_t
- hb_font_funcs_set_glyph_func()
Clients that implement their own font-funcs are encouraged to replace
their get_glyph() implementation with a get_nominal_glyph() and
get_variation_glyph() pair. The variation version can assume that
variation_selector argument is not zero.
|
|
ebd7431f
|
2016-02-24T15:53:40
|
|
Partially revert 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2
That commit moved the advance adjustment for mark positioning to
be applied immediately, instead of doing late before. This breaks
if mark advances are zeroed late, like in Arabic. Also, easier to
hit it in RTL scripts since a single mark with non-zero advance is
enough to hit the bug, whereas in LTR, at least two marks are needed.
This reopens https://github.com/behdad/harfbuzz/issues/211
The cursive+mark interaction is broken again. To be fixed in a
different way.
|
|
815bdd77
|
2016-02-22T18:22:44
|
|
In cluster-level=0, group ZWJ/ZWNJ with previous cluster
This better emulates Unicode grapheme clusters.
Note that Uniscribe does NOT do this, but should be harmless with most clients,
and improve fallback with clients that use HarfBuzz cluster as unit of fallback.
Fixes https://github.com/behdad/harfbuzz/issues/217
|
|
89137e32
|
2016-02-22T16:00:59
|
|
Minor
|
|
15063b12
|
2016-02-22T15:56:29
|
|
[coretext] Move CTFont construction to face_data
|
|
ba3d49d9
|
2016-02-22T15:50:12
|
|
[coretext] Move code around
|
|
90194efb
|
2016-02-22T15:42:53
|
|
[coretext] Move code around
|
|
9a13ed45
|
2016-02-22T11:44:45
|
|
Make FixedVersion a template
|
|
238b943e
|
2016-02-22T15:31:22
|
|
[coretext] Fix leak!
|
|
e5611228
|
2016-02-22T15:28:37
|
|
[coretext] Move code around
|
|
04c64431
|
2016-02-22T15:12:27
|
|
[coretext] Ignore PPEM in font size selection
|
|
62c27111
|
2016-02-22T15:07:20
|
|
[coretext] Limit grapheme-cluster forming to cluster-level=0
|
|
061105ec
|
2016-02-22T14:59:39
|
|
[coretext] Fix shaping with varying font size
Fixes https://github.com/libass/libass/issues/212
|
|
b87e36f6
|
2016-02-19T14:52:31
|
|
Avoid buffer->move_to() in case of buffer error
Fixes https://github.com/behdad/harfbuzz/issues/223
Right now we cannot test this because it has to be tested using hb-fuzzer.
We should move all fuzzing tests from test/shaping/tests/fuzzed.tests to
test/fuzzing/ and have its own test runner. At that point, should add
test from this issue as well.
|
|
568a0c60
|
2016-02-18T19:31:51
|
|
Remove pointless overflow check in pointer math
Fixes https://github.com/behdad/harfbuzz/issues/227
|
|
aae28470
|
2016-02-18T17:06:25
|
|
Emoji skin tone modifiers need to be treated as combining marks
Fixes https://github.com/behdad/harfbuzz/issues/169
|
|
da41e48f
|
2016-02-16T17:16:33
|
|
[USE] Zero mark advances by GDEF early
This is what Microsoft's implementation does. Marks that need advance
need to add it back using 'dist' or other feature in GPOS. Update tests to
match.
|
|
86c68c7a
|
2016-02-16T16:07:20
|
|
[GPOS] Fix interaction of mark attachments and cursive chaining
Fixes https://github.com/behdad/harfbuzz/issues/211
What happens in that bug is that a mark is attached to base first,
then a second mark is cursive-chained to the first mark. This only
"works" because it's in the Indic shaper where mark advances are
not zeroed.
Before, we didn't allow cursive to run on marks at all. Fix that.
We also where updating mark major offsets at the end of GPOS, such
that changes in advance of base will not change the mark attachment
position. That was superior to the alternative (which is what Uniscribe
does BTW), but made it hard to apply cursive to the mark after it
was positioned. We could track major-direction offset changes and
apply that to cursive in the post process, but that's a much trickier
thing to do than the fix here, which is to immediately apply the
major-direction advance-width offsets... Ie.:
https://github.com/behdad/harfbuzz/issues/211#issuecomment-183194739
If this breaks any fonts, the font should be fixed to do mark attachment
after all the advances are set up first (kerning, etc).
Finally, this, still doesn't make us match Uniscribe, for I explained
in that bug. Looks like Uniscribe applies minor-direction cursive
adjustment immediate as well. We don't, and we like it our way, at
least for now. Eg. the sequence in the test case does this:
- The first subscript attaches with mark-to-base, moving in x only,
- The second subscript attaches with cursive attachment to first subscript
moving in x only,
- A final context rule moves the first subscript up by 104 units.
The way we do, the final shift-up, also shifts up the second subscript
mark because it's cursively-attached. Uniscribe doesn't. We get:
[ttaorya=0+1307|casubscriptorya=0@-242,104+-231|casubscriptnarroworya=0@20,104+507]
while Uniscribe gets:
[ttaorya=0+1307|casubscriptorya=0@-242,104+-211|casubscriptnarroworya=0+487]
note the different y-offset of the last glyph. In our view, after cursive,
things move together, period.
|
|
80c8855c
|
2016-02-12T12:50:17
|
|
Minor
|
|
6ab92022
|
2016-02-11T16:57:52
|
|
[GPOS] Minor
No effect.
|
|
cbc3a76c
|
2016-02-11T16:48:13
|
|
[GPOS] Merge fixing of offsets for cursive and mark attachments
Part of fixing https://github.com/behdad/harfbuzz/issues/211
|
|
7d8d58ac
|
2016-02-11T16:34:28
|
|
[GPOS] Divide position_finish() into two phases, for advances and offsets
Right now the position_finish_advances() is empty. To be used for
spacing attachments proposal later.
|
|
84742315
|
2016-02-11T16:27:41
|
|
[ot] Minor shuffling code around
|
|
b0b11614
|
2016-02-11T15:28:55
|
|
[GPOS] Add harmless recursion in fix_mark_attachment()
Will do nothing. Just useful for merging two functions.
|
|
686567ba
|
2016-02-11T15:25:28
|
|
[GPOS] Merge attach_chain() and cursive_chain()
Differentiate, using new attach_type().
|
|
806ad8dc
|
2016-02-11T14:53:11
|
|
[GPOS] Minor shuffling
|
|
0f6278d1
|
2016-02-11T14:49:10
|
|
[GPOS] Negate sign of attach_lookback(), and rename it to attach_chain()
No behavior change. Preparing to unify how cursive and mark attachments
work.
|
|
660c9d3f
|
2016-02-11T12:14:27
|
|
Remove font-dependent ASCII-only perf hack
Is confusing. I already hit it myself. Remove. We can optimize
ASCII based on Unicode properties. But should not do based on
assumptions on the font.
|
|
eaadcbbc
|
2016-02-10T18:29:54
|
|
Remove now-unused mark zeroing BY_UNICODE
|
|
b3582a8e
|
2016-02-10T18:10:15
|
|
Change default mark advance zeroing behavior from Unicode to GDEF
See thread at:
https://lists.freedesktop.org/archives/harfbuzz/2016-February/005462.html
|
|
c6792854
|
2016-02-03T18:31:23
|
|
build: Build the DirectWrite sources if requested
This adds to the autotools build system so that the (experimental)
DirectWrite support for HarfBuzz is built (and dist'ed).
|
|
35ded3af
|
2015-11-03T16:56:27
|
|
build: Move source listings into separate Makefile snippets
This moves all the source listings in src/Makefile.am,
src/hb-ucdn/Makefile.am and util/Makefile.am into separate Makefile
snippets, so that they may be shared between different Makefile-based
build systems, such as NMake for Visual Studio.
|
|
b894a85a
|
2016-02-02T16:39:19
|
|
Fix more hangs in case of buffer allocation errors
Hopefully
fixes https://github.com/behdad/harfbuzz/issues/214
|
|
9a6a33cc
|
2016-01-18T12:47:18
|
|
Merge pull request #216 from mhosken/master
Refactor graphite2 to make ovleraps into negative width spaces
|
|
146fe252
|
2016-01-16T17:24:00
|
|
Refactor graphite2 to make ovleraps into negative width spaces
|
|
d05b7833
|
2016-01-12T16:17:21
|
|
Fix compiler warning
Fixes https://github.com/behdad/harfbuzz/issues/212
|
|
d163dc18
|
2016-01-12T13:05:01
|
|
Minor
|
|
3e704521
|
2016-01-11T17:38:41
|
|
[OT] Get list of lookup subtables once and loop through them
This speeds up shaping the Amiri font by over 15%.
This was primarily needed for my work on OpenType GX, since
we will be collecting only sublookups that are "active" for
current font instance; but it's a nice boost in general as
well.
We might, in the future, collect subtables in the lookup_accel.
That would also allow us to do a per-subtbale set-digest, which
should speed things up some more, specially for ContextChainFormat3
lookups... Amiri, for example, contains one lookup with 53
subtables!
|
|
97624d92
|
2016-01-11T12:58:45
|
|
[docs] Minor fixes.
|
|
a39ff95f
|
2016-01-11T12:28:37
|
|
[coretext] Speed up CoreText font fallback
Fixes https://code.google.com/p/chromium/issues/detail?id=547912
|
|
25671466
|
2016-01-07T19:11:41
|
|
Add 9 reserved entries to hb_font_extents_t
Might add italic-angle, underline/strikethrough-position/thickness
in the future. Do this before new struct goes into a release.
|
|
e6d5e4c3
|
2016-01-06T12:29:50
|
|
[uniscribe] Fix negative advance
This happens with at least one test font I have.
|
|
53c47c85
|
2016-01-05T13:26:20
|
|
Increase sanitize edit count from 8 to 32
See previous commit.
|
|
da2fcfdc
|
2016-01-05T13:23:45
|
|
Don't count fixing-up FeatureParams offset as error
The font Garamond Premier Pro Caption (and possibly many other
Adobe fonts), have many FeatureParamsSize tables with the old
wrong offset. We handle fixing those up, but they were still
contributing to edit_count, and when I reduced HB_SANITIZE_MAX_EDIT
from 100 to 8 in 14c2de321826c36037adde859ccca3e2011325a9, these
fonts were now getting GPOS dropped and hence kerning disabled.
Fix, by not counting edits made towareds offset fix-up. I'll
also increase edit count again, in the next commit.
|
|
d0adc809
|
2016-01-02T13:25:18
|
|
Check magicNumber in head table during sanitize
|
|
9ab9f974
|
2016-01-01T20:38:21
|
|
[docs] More buffers documentation
|
|
bfdf684f
|
2015-12-30T22:20:14
|
|
Merge pull request #205 from khaledhosny/more-docs
More docs
|
|
a7f0e25d
|
2015-12-30T16:05:52
|
|
Remove unused HB_SHAPER_DATA_ENSURE_DECLARE lines.
The coretext_aat shaper delegates to the regular coretext_..._ensure() functions, so coretext_aat_..._ensure() functions defined by these macros are unused. The compiler warns about them, which in turn can confuse people to think that the coretext_aat_..._ensure() functions weren't called by accident.
|
|
9cffe329
|
2015-12-30T22:50:08
|
|
[docs] Typo
|
|
b758e5ea
|
2015-12-30T16:44:19
|
|
Merge pull request #203 from nico/patch-1
Remove unused `retry:` label.
|
|
fb192c26
|
2015-12-30T15:05:50
|
|
[docs] A bit more buffers documentation
|
|
8ab797c5
|
2015-12-29T17:42:16
|
|
[docs] A bit more buffers documentation
|