Commit Graph

294 Commits

Author SHA1 Message Date
Garret Rieger e17e744300 Convert existing uses of serialize_append in gsub subsetting to use subset_offset_array. 2019-10-09 13:52:04 -07:00
Garret Rieger 36f18cecbb Add subset_offset_array helper function which simplifies subsetting offset arrays during stream operations. 2019-10-09 13:52:04 -07:00
Ebrahim Byagowi d512087e4d Rename GlyphID to HBGlyphID
Avoid collision with macOS's ATSUnicodeTypes.h GlyphID
2019-09-14 11:55:53 +04:30
Behdad Esfahbod 38f95baf6b [subset] in SingleSubst subsetting, check for substitute in glyphset
That matches what fonttools does and allows for specifying exact
glyphset for subset.
2019-08-29 13:40:46 -07:00
Ebrahim Byagowi 499029644f
[gsub] Fix clang's semicolon complains 2019-08-29 15:09:39 +04:30
Behdad Esfahbod dc9222b1dd [subset] Implement AlternateSubst subsetting 2019-08-28 15:38:46 -07:00
Behdad Esfahbod 23681b6da4 Minor 2019-08-28 15:30:37 -07:00
Behdad Esfahbod 33c8e2303c [subset] Implement MultipleSubst subsetting 2019-08-28 15:25:55 -07:00
Behdad Esfahbod 5c43a7ba7e [GSUB] Use dagger in Ligature::intersects() 2019-08-28 15:10:38 -07:00
Behdad Esfahbod b8c642c1f5 Minor 2019-08-28 15:06:45 -07:00
Behdad Esfahbod bc5ef765a8 [subset] Subset ligature substitutes!
Test with:

$ ./hb-subset -o out.ttf NotoSansArabic-Regular.ttf --drop-tables=  سلام && ./hb-view out.ttf سلام
2019-08-28 14:52:13 -07:00
Behdad Esfahbod 0a18efd766 Minor 2019-07-26 14:34:26 -07:00
Behdad Esfahbod 7dcf8e126e [config] Fix build with HB_NO_OT_LAYOUT 2019-06-26 13:44:23 -07:00
Behdad Esfahbod 2ad4ba7bc0 [gsub] Minor 2019-05-31 15:51:29 -07:00
Behdad Esfahbod 2dbdec66a1 [gsub] Porting serialize to iterators 2019-05-31 15:41:54 -07:00
Garret Rieger 0af9de13b7 [subset] For gsub subsetting only consider glyphs reachable via gsub closure. 2019-05-21 13:02:11 -07:00
Behdad Esfahbod bcd3ffc948 Whitespace 2019-05-16 13:27:08 -07:00
Behdad Esfahbod 05bc5f96fb [subset] Remove extra iteration 2019-05-16 13:05:58 -07:00
Behdad Esfahbod 2376867649 Use hb_map(hb_add(this)) to dereference OffsetTo<>'s 2019-05-15 22:01:44 -07:00
Behdad Esfahbod d214b07883 Fix clang build
Ugh.

In file included from hb-ot-face.cc:41:
./hb-ot-layout-gsub-table.hh:293:7: error: template parameter redefines default argument
         hb_requires (hb_is_sorted_source_of (Iterator,
         ^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
 define hb_requires(Cond) hb_enable_if((Cond))
                          ^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
 define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
                                                                  ^
./hb-ot-layout-gsub-table.hh:40:5: note: previous default template argument defined here
    hb_requires (hb_is_sorted_source_of (Iterator,
    ^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
 define hb_requires(Cond) hb_enable_if((Cond))
                          ^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
 define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
                                                                  ^
2019-05-15 19:07:39 -07:00
Behdad Esfahbod 371b55c7a0 Fix clang build
In file included from hb-ot-face.cc:41:
./hb-ot-layout-gsub-table.hh:293:7: error: template parameter redefines default argument
         hb_requires (hb_is_sorted_source_of (Iterator,
         ^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
 define hb_requires(Cond) hb_enable_if((Cond))
                          ^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
 define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
                                                                  ^
./hb-ot-layout-gsub-table.hh:40:5: note: previous default template argument defined here
    hb_requires (hb_is_sorted_source_of (Iterator,
    ^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
 define hb_requires(Cond) hb_enable_if((Cond))
                          ^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
 define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
                                                                  ^
1 error generated.
2019-05-15 19:04:24 -07:00
Behdad Esfahbod f92d188d77 Whitespace 2019-05-15 18:52:57 -07:00
Garret Rieger 962f95cf80 [subset] Switch SingleSubst to use iterators in serialize. 2019-05-15 18:37:32 -07:00
Behdad Esfahbod 78d35f0e78 Reduce captures of lambdas 2019-05-15 18:15:05 -07:00
Behdad Esfahbod d0df996cdc Use implicit lambda return type 2019-05-15 00:32:41 -07:00
Behdad Esfahbod 7df3ecfb40 [meta] hb_void_t -> hb_empty_t 2019-05-10 20:43:26 -07:00
Behdad Esfahbod 83e3eabd84 Whitespace 2019-05-07 20:58:43 -07:00
Behdad Esfahbod 41248cce0e Remove MIN/MAX in favor of hb_min/hb_max 2019-05-07 20:54:31 -07:00
Behdad Esfahbod 36bb24f7b4 [dispatch] Forward arguments in all dispatch multiplexers 2019-05-05 10:14:17 -07:00
Behdad Esfahbod b10f65933a [dispatch] Use functionality from previous commit
To remove a couple of unwanted wrapper methods
2019-05-05 09:23:35 -07:00
Behdad Esfahbod 88a4147240 [serializer] Accept exact type in serialize_subset/copy() 2019-05-02 14:22:31 -07:00
Ebrahim Byagowi 92588782d7
Remove space between right angle brackets now that we have C++11 (#1689) 2019-04-30 13:05:10 -07:00
Behdad Esfahbod 42526d1697 [serialize] Fix SingleSubstFormat1 failure 2019-04-24 10:24:33 -04:00
Behdad Esfahbod 915b9ea5f4 [serialize] Add c->check_assign()
To check for assignment overflows.
2019-04-24 10:07:19 -04:00
Behdad Esfahbod 00a00bc1f2 Fix two TODOs 2019-04-24 10:01:30 -04:00
Behdad Esfahbod 95df00aec1 Hide a few static methods
Looks like static methods that do not get inlined end up exported.
We have a lot more.  Need to protect all at some point.  Wish there
was an easier way, like the visibility flag we pass that automatically
hides all inline methods.

Was exposed by check-symbols.sh when compiling on OS X 10.14 with:

$ make CPPFLAGS=-Oz CXXFLAGS=-flto=thin LDFLAGS=-lc++
2019-04-12 17:51:14 -04:00
Behdad Esfahbod 688069bbfb [iter] One more dagger 2019-03-29 22:17:31 -07:00
Behdad Esfahbod 90b60bd690 Remove HB_DEBUG_WOULD_APPLY
Not that useful.
2019-03-29 22:12:42 -07:00
Behdad Esfahbod 4d28267e59 [iter] Port more to daggers 2019-03-29 22:04:15 -07:00
Behdad Esfahbod 418e9d07e2 Simplify code 2019-03-29 21:57:26 -07:00
Behdad Esfahbod bcab098c8f [iter] Port more code to daggers 2019-03-29 21:49:18 -07:00
Behdad Esfahbod 4c75158e18 [iter] Port two more functions to daggers 2019-03-29 21:46:13 -07:00
Behdad Esfahbod f1dad91eb3 Whitespace 2019-03-29 21:17:08 -07:00
Behdad Esfahbod 896b31670d [iter] Port two more loops to dagger 2019-03-29 21:16:30 -07:00
Behdad Esfahbod 12a4c0441f Whitespace 2019-03-29 21:06:10 -07:00
Behdad Esfahbod b986c6a321 [C++11] Remove IntType::set() in favor of operator= 2019-03-29 20:21:21 -07:00
Behdad Esfahbod f4cfd6b6ad [iter] A couple more hb_apply() + lambda uses 2019-02-14 13:45:52 -08:00
Behdad Esfahbod 7514a49f21 [iter] Use hb_apply() with lambda functions in a few places 2019-02-14 13:16:33 -08:00
Behdad Esfahbod f8fcfb263e [iter] Accept pointers to hb_sink() 2019-02-14 11:03:29 -08:00
Behdad Esfahbod bb139cb8d0 [iter] Back to dagger formatting for pipelines 2019-02-14 10:52:02 -08:00