summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-02-251.2.31.2.3Behdad Esfahbod2-1/+43
2016-02-25Disable internal buffer variable bookkeeping in NDEBUG buildsBehdad Esfahbod3-12/+25
Saves some sweet time and binary size!
2016-02-25Add blacklist signature for Times New Roman (Bold) Italic on OS XBehdad Esfahbod1-0/+2
2016-02-25[test] Pass closure to hb_font_set_glyph_func()Behdad Esfahbod1-1/+1
Exercises fix in c335fd7986fe360ab8e1c032c9b988d0d30511eb
2016-02-25Blacklist GDEF table of timesi.ttf and timesbi.ttf on Win 7Behdad Esfahbod1-0/+25
See discussion: https://lists.freedesktop.org/archives/harfbuzz/2016-February/005489.html
2016-02-25In trampoline implementation of get_glyph(), don't destroy user data twice!Behdad Esfahbod1-14/+27
2016-02-24[ot-font] Accelerate cmap format4 get_glyphBehdad Esfahbod2-48/+77
2016-02-24[ot-font] Towards accelerating get_glyph()Behdad Esfahbod1-3/+20
2016-02-24[ot-font] Remove level of indirection in get_glyph_variantBehdad Esfahbod2-16/+11
2016-02-24[TODO] UpdateBehdad Esfahbod1-14/+2
This file is rather obsolete. Still, give it a refresh.
2016-02-24Add get_nominal_glyph() and get_variation_glyph() instead of get_glyph()Behdad Esfahbod13-91/+344
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.
2016-02-241.2.21.2.2Behdad Esfahbod2-2/+14
2016-02-24Fix recent testBehdad Esfahbod1-1/+1
Not sure why the FT functions were returning advance 1024. This caused failure on drone.io. Switch to hb-ot-font and disable glyph names.
2016-02-24[tests] Fix for multiple options in test runner scriptsBehdad Esfahbod1-2/+1
2016-02-24Partially revert 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2Behdad Esfahbod2-17/+13
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.
2016-02-24Add test for mark positioning in rtl with non-zero mark advanceBehdad Esfahbod2-0/+1
Apparently I broke this 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2. Fix coming.
2016-02-24[tests] Allow commenting out tests to be skippedBehdad Esfahbod1-0/+4
2016-02-24[Android.mk] Update with warning flagsBehdad Esfahbod1-1/+2
2016-02-231.2.11.2.1Behdad Esfahbod2-1/+14
2016-02-23Add note re only adding tests with Free Software fontsBehdad Esfahbod1-1/+4
2016-02-23[test] Add README about how to add shaping testsBehdad Esfahbod2-0/+38
2016-02-23Remove MANIFEST filesBehdad Esfahbod126-381/+0
They are unused currently. We can add later if we hook them up to anything useful.
2016-02-22In cluster-level=0, group ZWJ/ZWNJ with previous clusterBehdad Esfahbod4-3/+10
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
2016-02-22MinorBehdad Esfahbod2-2/+2
2016-02-22[coretext] Move CTFont construction to face_dataBehdad Esfahbod1-36/+30
2016-02-22[coretext] Move code aroundBehdad Esfahbod1-30/+40
2016-02-22[coretext] Move code aroundBehdad Esfahbod1-20/+26
2016-02-22[build] git.mk fix for m4/gtk-doc.m4Behdad Esfahbod1-0/+1
2016-02-22[win32] Install git.mkBehdad Esfahbod1-0/+2
2016-02-22Make FixedVersion a templateBehdad Esfahbod8-13/+14
2016-02-22[coretext] Fix leak!Behdad Esfahbod1-0/+1
2016-02-22[coretext] Move code aroundBehdad Esfahbod1-47/+62
2016-02-22[coretext] Ignore PPEM in font size selectionBehdad Esfahbod1-10/+4
2016-02-22[coretext] Limit grapheme-cluster forming to cluster-level=0Behdad Esfahbod2-1/+2
2016-02-22[coretext] Fix shaping with varying font sizeBehdad Esfahbod1-4/+4
Fixes https://github.com/libass/libass/issues/212
2016-02-191.2.01.2.0Behdad Esfahbod2-1/+21
2016-02-19[fuzzing] Add test for recent fixBehdad Esfahbod3-0/+2
Test from https://github.com/behdad/harfbuzz/issues/223 I forgot that we do run hb-fuzzer on tests in shaping/tests/fuzzed.tests.
2016-02-19[fuzzing] Make test runner actually workBehdad Esfahbod1-2/+4
2016-02-19[fuzzing] Add TODO itemBehdad Esfahbod1-0/+1
2016-02-19Avoid buffer->move_to() in case of buffer errorBehdad Esfahbod2-1/+3
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.
2016-02-19[fuzzing] Make "make hb-fuzzer" build lib dependencyBehdad Esfahbod1-0/+3
Not going to do with util/, but is convenient here.
2016-02-18Remove pointless overflow check in pointer mathBehdad Esfahbod1-1/+0
Fixes https://github.com/behdad/harfbuzz/issues/227
2016-02-18Emoji skin tone modifiers need to be treated as combining marksBehdad Esfahbod2-3/+17
Fixes https://github.com/behdad/harfbuzz/issues/169
2016-02-16[USE] Zero mark advances by GDEF earlyBehdad Esfahbod5-2/+5
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.
2016-02-16[GPOS] Fix interaction of mark attachments and cursive chainingBehdad Esfahbod4-15/+18
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.
2016-02-12MinorBehdad Esfahbod1-1/+1
2016-02-11[GPOS] MinorBehdad Esfahbod1-4/+4
No effect.
2016-02-11[GPOS] Merge fixing of offsets for cursive and mark attachmentsBehdad Esfahbod2-43/+33
Part of fixing https://github.com/behdad/harfbuzz/issues/211
2016-02-11[GPOS] Divide position_finish() into two phases, for advances and offsetsBehdad Esfahbod5-30/+29
Right now the position_finish_advances() is empty. To be used for spacing attachments proposal later.
2016-02-11[ot] Minor shuffling code aroundBehdad Esfahbod2-7/+8