src


Log

Author Commit Date CI Message
Behdad Esfahbod 9879fc1d 2016-05-02T10:29:12 [ot-font] Remove unused 'post' table include for now To make a release...
Behdad Esfahbod 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.
Behdad Esfahbod 587d4622 2016-04-30T19:20:56 [ot-font] Start implementing 'post' table, for accessing glyph names
Behdad Esfahbod 9abaaac4 2016-04-27T03:38:24 Merge commit '264b7a728a41becfbf23ce258fc2a3af19d0cbbe' into HEAD
Behdad Esfahbod 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.
Arthur Reutenauer adafdcdd 2015-11-07T23:37:21 Mass-added “difficult” tags – to be curated.
Arthur Reutenauer 3d6a2c0d 2015-11-07T22:59:13 Initial import of missing OpenType 1.7 language tags.
Behdad Esfahbod 7e2da035 2016-04-26T16:42:25 Undo accidental change
Behdad Esfahbod b2030502 2016-04-26T16:41:17 Do NOT ignore Mongolian Free Variation Selectors during matching Fixes https://github.com/behdad/harfbuzz/issues/234
Behdad Esfahbod 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
Behdad Esfahbod 29393884 2016-04-26T10:35:23 Annotate blacklisted fonts with their sha1sum
Konstantin Ritt 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
Behdad Esfahbod 1c625dff 2016-04-09T12:53:23 Minor
Behdad Esfahbod 851b0db3 2016-04-08T23:46:55 Minor. We should never get to this branch, but fix it anyway.
Behdad Esfahbod 4f3d59a1 2016-04-08T13:41:20 Blacklist another set of timesi.ttf and timesbi.ttf
Behdad Esfahbod ef476be8 2016-04-08T13:16:33 Merge pull request #239 from ebraminio/dwfix Improve DirectWrite backend
Ebrahim Byagowi d3134a66 2016-04-05T21:01:05 Fix when no feature is given
Behdad Esfahbod 59089622 2016-04-04T14:54:32 [coretext] Clarify comment
Behdad Esfahbod 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.
Ebrahim Byagowi 4a104021 2016-04-02T13:47:59 Hide justification behind HB_DIRECTWRITE_EXPERIMENTAL_JUSTIFICATION
Ebrahim Byagowi 63ee9ca5 2016-04-01T15:47:07 Use standard types instead Windows favourites ones
Ebrahim Byagowi adf20ba0 2016-04-01T15:36:40 Limit GetJustifiedGlyphs only to scripts with custom justification character
Ebrahim Byagowi 32ae9d1b 2016-04-01T06:39:57 Add justification support
Ebrahim Byagowi 10c3d9e4 2016-03-31T18:19:44 Basic opentype features support
Ebrahim Byagowi d1298971 2016-03-31T13:45:37 Refactor and remove dupe getglyphs call
Ebrahim Byagowi 5f1a8961 2016-03-31T12:26:16 Better glyph offset support
Ebrahim Byagowi d691ba3f 2016-03-30T20:21:40 Don't fail when language is not set
Ebrahim Byagowi 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
Behdad Esfahbod 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.
Behdad Esfahbod fef5dd9a 2016-03-12T19:15:15 Merge pull request #232 from c0nk/wip-icu Add --with-icu=builtin option; fix compile error
Behdad Esfahbod 3e10460a 2016-03-11T18:45:19 Minor comment
Behdad Esfahbod 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
Behdad Esfahbod ce8ae997 2016-03-04T17:20:35 Merge pull request #231 from KonstantinRitt/post123buildfix Fix build with HB_DISABLE_DEPRECATED
Behdad Esfahbod 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!
Behdad Esfahbod 68b6296d 2016-03-01T16:41:53 Add F2DOT14 type
Behdad Esfahbod 082b79fe 2016-03-01T16:41:26 Use FWORD and UFWORD when it makes sense I had forgotten about those types.
Kal Conley 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
Kal Conley b424b6c3 2016-02-26T00:35:15 Add --with-icu=builtin configure option
Konstantin Ritt 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.
Behdad Esfahbod 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!
Behdad Esfahbod 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.
Behdad Esfahbod 98816502 2016-02-25T12:23:02 Disable internal buffer variable bookkeeping in NDEBUG builds Saves some sweet time and binary size!
Behdad Esfahbod 94dd0bb7 2016-02-25T11:31:03 Add blacklist signature for Times New Roman (Bold) Italic on OS X
Behdad Esfahbod 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
Behdad Esfahbod c335fd79 2016-02-25T09:16:05 In trampoline implementation of get_glyph(), don't destroy user data twice!
Behdad Esfahbod 23335dea 2016-02-24T20:27:13 [ot-font] Accelerate cmap format4 get_glyph
Behdad Esfahbod e0f16a71 2016-02-24T19:52:36 [ot-font] Towards accelerating get_glyph()
Behdad Esfahbod 5473ebfb 2016-02-24T19:32:43 [ot-font] Remove level of indirection in get_glyph_variant
Behdad Esfahbod 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.
Behdad Esfahbod 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.
Behdad Esfahbod 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
Behdad Esfahbod 89137e32 2016-02-22T16:00:59 Minor
Behdad Esfahbod 15063b12 2016-02-22T15:56:29 [coretext] Move CTFont construction to face_data
Behdad Esfahbod ba3d49d9 2016-02-22T15:50:12 [coretext] Move code around
Behdad Esfahbod 90194efb 2016-02-22T15:42:53 [coretext] Move code around
Behdad Esfahbod 9a13ed45 2016-02-22T11:44:45 Make FixedVersion a template
Behdad Esfahbod 238b943e 2016-02-22T15:31:22 [coretext] Fix leak!
Behdad Esfahbod e5611228 2016-02-22T15:28:37 [coretext] Move code around
Behdad Esfahbod 04c64431 2016-02-22T15:12:27 [coretext] Ignore PPEM in font size selection
Behdad Esfahbod 62c27111 2016-02-22T15:07:20 [coretext] Limit grapheme-cluster forming to cluster-level=0
Behdad Esfahbod 061105ec 2016-02-22T14:59:39 [coretext] Fix shaping with varying font size Fixes https://github.com/libass/libass/issues/212
Behdad Esfahbod 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.
Behdad Esfahbod 568a0c60 2016-02-18T19:31:51 Remove pointless overflow check in pointer math Fixes https://github.com/behdad/harfbuzz/issues/227
Behdad Esfahbod 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
Behdad Esfahbod 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.
Behdad Esfahbod 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.
Behdad Esfahbod 80c8855c 2016-02-12T12:50:17 Minor
Behdad Esfahbod 6ab92022 2016-02-11T16:57:52 [GPOS] Minor No effect.
Behdad Esfahbod 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
Behdad Esfahbod 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.
Behdad Esfahbod 84742315 2016-02-11T16:27:41 [ot] Minor shuffling code around
Behdad Esfahbod b0b11614 2016-02-11T15:28:55 [GPOS] Add harmless recursion in fix_mark_attachment() Will do nothing. Just useful for merging two functions.
Behdad Esfahbod 686567ba 2016-02-11T15:25:28 [GPOS] Merge attach_chain() and cursive_chain() Differentiate, using new attach_type().
Behdad Esfahbod 806ad8dc 2016-02-11T14:53:11 [GPOS] Minor shuffling
Behdad Esfahbod 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.
Behdad Esfahbod 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.
Behdad Esfahbod eaadcbbc 2016-02-10T18:29:54 Remove now-unused mark zeroing BY_UNICODE
Behdad Esfahbod 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
Chun-wei Fan 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).
Chun-wei Fan 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.
Behdad Esfahbod b894a85a 2016-02-02T16:39:19 Fix more hangs in case of buffer allocation errors Hopefully fixes https://github.com/behdad/harfbuzz/issues/214
Behdad Esfahbod 9a6a33cc 2016-01-18T12:47:18 Merge pull request #216 from mhosken/master Refactor graphite2 to make ovleraps into negative width spaces
Martin Hosken 146fe252 2016-01-16T17:24:00 Refactor graphite2 to make ovleraps into negative width spaces
Behdad Esfahbod d05b7833 2016-01-12T16:17:21 Fix compiler warning Fixes https://github.com/behdad/harfbuzz/issues/212
Behdad Esfahbod d163dc18 2016-01-12T13:05:01 Minor
Behdad Esfahbod 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!
Behdad Esfahbod 97624d92 2016-01-11T12:58:45 [docs] Minor fixes.
Behdad Esfahbod a39ff95f 2016-01-11T12:28:37 [coretext] Speed up CoreText font fallback Fixes https://code.google.com/p/chromium/issues/detail?id=547912
Behdad Esfahbod 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.
Behdad Esfahbod e6d5e4c3 2016-01-06T12:29:50 [uniscribe] Fix negative advance This happens with at least one test font I have.
Behdad Esfahbod 53c47c85 2016-01-05T13:26:20 Increase sanitize edit count from 8 to 32 See previous commit.
Behdad Esfahbod 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.
Behdad Esfahbod d0adc809 2016-01-02T13:25:18 Check magicNumber in head table during sanitize
Khaled Hosny 9ab9f974 2016-01-01T20:38:21 [docs] More buffers documentation
Behdad Esfahbod bfdf684f 2015-12-30T22:20:14 Merge pull request #205 from khaledhosny/more-docs More docs
Nico Weber 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.
Khaled Hosny 9cffe329 2015-12-30T22:50:08 [docs] Typo
Behdad Esfahbod b758e5ea 2015-12-30T16:44:19 Merge pull request #203 from nico/patch-1 Remove unused `retry:` label.
Khaled Hosny fb192c26 2015-12-30T15:05:50 [docs] A bit more buffers documentation
Khaled Hosny 8ab797c5 2015-12-29T17:42:16 [docs] A bit more buffers documentation