Commit Graph

7828 Commits

Author SHA1 Message Date
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 dc2c9aa0c3 Rename 2019-08-28 15:05:49 -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 42d887bd22 Beef up HeadlessArrayOf<>
Should be merged with ArrayOf...
https://github.com/harfbuzz/harfbuzz/issues/1937
2019-08-28 14:47:14 -07:00
Behdad Esfahbod 3ca809e362 Add ArrayOf::pop() 2019-08-28 13:49:35 -07:00
Behdad Esfahbod 307bd6d79f Add arithmetic operators to IntType<> 2019-08-28 13:49:17 -07:00
Behdad Esfahbod 2e1d00c85b [debug] Minor 2019-08-28 13:49:04 -07:00
Behdad Esfahbod 062cad5e28 Add ArrayOf::serialize_append 2019-08-28 13:48:55 -07:00
Adrian Wong b66076812d Adjustments to the generated Indic table output (#1936)
* Add empty parentheses after print call

* Minor: newlines. Move #pragma pop down one; #endif up one

* Adjust #define ISC/IMC output

* Regenerate Indic table
2019-08-28 04:31:27 -07:00
Ebrahim Byagowi 4ef08dbce1 Use hb_bytes_t as<T> in hb_blob_t 2019-08-27 17:38:09 +04:30
Ebrahim Byagowi dce42cef2b [glyf] Move GlyphHeader::from_bytes to hb_bytes_t, introduce .as<T> () 2019-08-27 17:38:09 +04:30
Ebrahim Byagowi 6e82d59b4f
[glyf] Revert the way indexToLocFormat is set 2019-08-27 12:33:42 +04:30
Ebrahim Byagowi 88e9db19d2
[subset] Remove subset table size assertion
As https://github.com/harfbuzz/harfbuzz/pull/1930#issuecomment-525036802
2019-08-27 02:44:26 +04:30
Ebrahim Byagowi a0b4ac4dce Turn 8 spaces to tab across the project
According to the current code style of the project
2019-08-27 02:40:41 +04:30
Ebrahim Byagowi 269a120f13
[subset] Raise the bar in new vs old table size
https://crbug.com/oss-fuzz/16740

This is actually an interesting thing that {h,v}mtx allocates as
much as a font pretends to have glyphs but the solution is not
that obvious as regular fonts can have less than actually containing
metrics in their {h,v}mtx. This change raises the bar to consider this
hmtx 4 byte for every glyph case.

Initially we wanted to just find things allocating crazy amount of
memory but having the assert has led to interesting findings also
so let's don't remove the assert and see what we can find elsewhere.
2019-08-25 20:37:00 +04:30
Ebrahim Byagowi 2f8e823331
[glyf] minor 2019-08-25 12:37:40 +04:30
Ebrahim Byagowi 07e467a30e [glyf] Move GlyphHeader size checking to a static method 2019-08-25 01:10:37 +04:30
Ebrahim Byagowi 139d14dc89 [glyf] Move GlyphHeader related logics to its, making its fields protected 2019-08-24 17:50:25 +04:30
Ebrahim Byagowi d57819cbdb [glyf] format source 2019-08-24 17:00:54 +04:30
Ebrahim Byagowi 2aef3013f3 [subset] Consider instruction length place itself
Now fixes https://crbug.com/oss-fuzz/16639 completely
2019-08-24 16:11:21 +04:30
Ebrahim Byagowi 922898c814 [subset] Fail on table grow more than 16x+4096 2019-08-24 16:11:21 +04:30
Ebrahim Byagowi 28aba780c4 [subset] Fix blob leak of _subset2 when returns early
Fixes https://crbug.com/oss-fuzz/16639
2019-08-24 16:11:21 +04:30
Behdad Esfahbod 541f3c2d7d [debug] Fix extra semicolon issue
https://github.com/harfbuzz/harfbuzz/issues/1923
2019-08-23 12:25:58 -07:00
Behdad Esfahbod 4dcaca8411 Whitespace 2019-08-23 12:24:15 -07:00
Behdad Esfahbod 569426d861 [debug] Fix build with HB_DEBUG
Fixes https://github.com/harfbuzz/harfbuzz/issues/1923
2019-08-23 11:54:39 -07:00
Behdad Esfahbod be97e9d678 2.6.1 2019-08-22 15:52:24 -07:00
Behdad Esfahbod d304d60e4d [ot-font] Prefer symbol cmap subtable if found
Fixes https://github.com/harfbuzz/harfbuzz/issues/1918

Hopefully doesn't break anyone...
2019-08-21 12:30:22 -07:00
Ebrahim Byagowi 2a3d4987a7
Remove hb_directwrite_shape_experimental_width public API
I had specially exposed the API as I didn't know how to embed harfbuzz
easily elsewhere but now with harfbuzz.cc it has become very easy
and I don't like to see its use anywhere as it has a bad naming and
its Kashida adding is bogus and only useful to check where it should
be added, not visually useful however.
2019-08-21 03:02:01 +04:30
Behdad Esfahbod aaa85931f3 [font] Update multipliers when creating sub_font
Fixes https://github.com/harfbuzz/harfbuzz/issues/1910
2019-08-20 13:06:10 -07:00
Ebrahim Byagowi bbad1b8298
[trak] minor, use roundf instead round to normalize the use
The change to `round` wasn't intended
2019-08-20 14:46:48 +04:30
Ebrahim Byagowi 37de38adea
Merge branch 'master' into remove-coretext-96dpi-assumption 2019-08-20 12:59:33 +04:30
Behdad Esfahbod 5ee1e451cf Minor touch-up for recent change 2019-08-19 14:23:17 -07:00
Ebrahim Byagowi 3348992844 [avar] Implement inverse map, unmap 2019-08-19 14:22:15 -07:00
Ebrahim Byagowi 981f5a54c3 [fvar] Implement inverse normalize, unnormalize 2019-08-19 14:22:15 -07:00
Behdad Esfahbod dcb4cd400f Minor 2019-08-19 11:35:37 -07:00
Ebrahim Byagowi ca54440324
Remove continuous development helper script
Not have used it personally for a long time, lets remove it
2019-08-18 11:58:04 +04:30
Khaled Hosny 40aef1b473 [ot-shape] Keep horizontal_features array sorted 2019-08-16 02:17:32 +02:00
Khaled Hosny da5118da77 [ot-shape] Enable abvm/blwm features by default
Core Text seems to apply them to Latin text, but Uniscribe doesn’t.

See https://github.com/harfbuzz/harfbuzz/pull/1908#issuecomment-521819343
2019-08-16 02:17:32 +02:00
Khaled Hosny 2164bd6f29
[ot-shape] Enable dist feature by default (#1908)
Fixes https://github.com/harfbuzz/harfbuzz/issues/1907
2019-08-16 00:28:41 +02:00
Ebrahim Byagowi bc27f86ffe
Move HB_NO_VAR to a better place in hb-font.cc
Needed for other works
2019-08-14 22:37:00 +04:30
Ebrahim Byagowi 1cc844da66
minor
Use hb_font_t coords directly
2019-08-14 19:10:02 +04:30
Ebrahim Byagowi 6a194b6876
Minor, remove trailing spaces in hb-font.{cc,h} as .editorconfig 2019-08-14 18:49:57 +04:30
Ebrahim Byagowi 3ae44645d6 Fix caret_count value when AAT is disabled
Set caret_count to zero as that is what we want to happen inside lcar when
there is no result.
2019-08-14 17:58:30 +04:30
Ebrahim Byagowi a5aa67b9f2 [lcar] Use multiformat convention 2019-08-14 17:58:30 +04:30
Ebrahim Byagowi bfffe85dd7 [opbd] Use multiformat convention on the table 2019-08-14 15:45:57 +04:30
Ebrahim Byagowi d6206dbcc4 [opbd] Turn OpticalBounds fields to FWORD 2019-08-14 15:45:57 +04:30
Behdad Esfahbod 6461143b44 2.6.0 2019-08-13 22:20:54 -07:00
Behdad Esfahbod e56d4ff43b Rename hb_ot_meta_get_entries() to +hb_ot_meta_get_entry_tags() 2019-08-13 21:02:47 -07:00
Behdad Esfahbod aade9b70aa [pool] Fix alignment assertion
I *think* it should fix https://github.com/harfbuzz/harfbuzz/issues/1901

Ie. if on a system, alignof(void*) < sizeof(void*)...
2019-08-13 16:10:03 -07:00
Ebrahim Byagowi 60d9f00975
Implement opbd table parsing
https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6opbd.html
2019-08-11 16:15:19 +04:30
Ebrahim Byagowi 8762676e34
[os2] Replace null pool addr compare by checking vital fields (#1896) 2019-08-10 01:26:55 +04:30
Ebrahim Byagowi 1f926fb2b6 [fvar] Use roundf instead hardcoding round logic 2019-08-09 11:05:48 -07:00
Ebrahim Byagowi 60485ab047
[os2] Get defined lower/upper optical size 2019-08-07 23:23:06 +04:30
Qunxin Liu 321d5588d4 [subset] Add subsetting for GPOS Lookup Type 1: Single Adjustment Positioning Subtable 2019-08-06 14:06:35 -07:00
Qunxin Liu 37572882e7 [subset] cmap table to use _subset2 and new iterator frameworks 2019-08-05 11:26:34 -07:00
Ebrahim Byagowi 5848c890cf
[metrics] Add metrics tags documentation 2019-08-03 14:19:28 +04:30
Ebrahim Byagowi 4d1872b8e0
[base] Add documentation for baseline tags from ot spec 2019-08-03 14:06:46 +04:30
Ebrahim Byagowi bbeee84a7f
[meta] Add metadata tags documentation from ot spec 2019-08-03 13:47:55 +04:30
Ebrahim Byagowi 521c7013ab
[cpal] revert port to dagger
It has a different semantic, maybe we should just do a zero memset,
letting Behdad to decide.
2019-07-30 18:10:40 +04:30
Ebrahim Byagowi 8014ce198a
[cpal] port to dagger (#1887) 2019-07-30 17:31:34 +04:30
Ebrahim Byagowi d67201da5a
[colr] minor 2019-07-30 17:20:18 +04:30
Ebrahim Byagowi e5cf9718c0
[colr][feat][meta] Port sub_array iteration to dagger (#1868) 2019-07-30 04:44:23 +04:30
Ebrahim Byagowi 9f2b4956b4
[base] Add hb_ot_layout_get_baseline API 2019-07-30 04:42:51 +04:30
Ebrahim Byagowi 40a4b6ddbd [var] Add a new API, hb_font_set_var_named_instance 2019-07-29 16:23:47 -07:00
Ebrahim Byagowi b6a2281f1a [meta] Make values match their enum type naming 2019-07-30 03:48:23 +04:30
Ebrahim Byagowi 20072a2eca [metrics] Make values match their enum type naming 2019-07-30 03:48:23 +04:30
Ebrahim Byagowi ed2965a852
[base] Don't use enum inside the table 2019-07-30 03:34:10 +04:30
Ebrahim Byagowi 388fa9b326 [lcar] flip for and switch position 2019-07-29 15:19:33 -07:00
Ebrahim Byagowi 4e1da6bb61 [metrics] Rename hb_ot_metrics_t to hb_ot_metrics_tag_t 2019-07-29 22:43:09 +04:30
Ebrahim Byagowi 2c2a2b97db [meta] Rename hb_ot_meta_t to hb_ot_meta_tag_t 2019-07-29 22:43:09 +04:30
Behdad Esfahbod 7bcc5dfa97 [iter] Fix accumulate to accept const types 2019-07-28 20:55:50 -07:00
Ebrahim Byagowi 87454c447d
[base] fix logic 2019-07-28 20:46:47 +04:30
Ebrahim Byagowi 69655d5bc3
[base] minor 2019-07-28 20:39:20 +04:30
Ebrahim Byagowi d9c44e7239
[base] Check if the returned base_coord is valid 2019-07-28 20:35:32 +04:30
Ebrahim Byagowi 53853c044a
[meta] minor 2019-07-28 20:23:48 +04:30
Ebrahim Byagowi ed126d8c37
[base] fix build 2019-07-28 20:21:59 +04:30
Ebrahim Byagowi c7b22b96cc
[base] minor 2019-07-28 19:46:57 +04:30
Ebrahim Byagowi a157342fce
[base] Fix use of bsearch 2019-07-28 18:54:13 +04:30
Ebrahim Byagowi eddd456532
[base] minor spacing 2019-07-28 02:21:54 +04:30
Behdad Esfahbod 0a18efd766 Minor 2019-07-26 14:34:26 -07:00
Ebrahim Byagowi d3d99f8bb6
[metrics] Expose raw OS2/HHEA asc/dsc values using private tags (#1867) 2019-07-26 16:46:04 +04:30
Ebrahim Byagowi aaffe41094 [meta] minor, simplify iterator 2019-07-25 17:49:51 -07:00
Ebrahim Byagowi 62932c14bd [meta] Rename ot-metadata to ot-meta per review 2019-07-25 17:49:51 -07:00
Ebrahim Byagowi 821d9e9034 Use .sub_array for DataMap tags iteration 2019-07-25 17:49:51 -07:00
Ebrahim Byagowi a250af98ae [meta] Add max value to hb_ot_metadata_t 2019-07-25 17:49:51 -07:00
Ebrahim Byagowi 80e246a1f2 [meta] Add a test program for metadata 2019-07-25 17:49:51 -07:00
Ebrahim Byagowi bc65ebbce7 [meta] hb_ot_metadata_get_entries, tags iteration API 2019-07-25 17:49:51 -07:00
Ebrahim Byagowi 3ac03bd67c [meta] New API, hb_ot_metadata_reference_entry for fetching meta entries 2019-07-25 17:49:51 -07:00
Ebrahim Byagowi aab8e08487
minor spacing fix (#1869) 2019-07-26 02:19:22 +04:30
Ebrahim Byagowi d791446a93
[feat] minor 2019-07-26 02:12:06 +04:30
Ebrahim Byagowi a744fdc6c8
Add _MAX_VALUE to hb_ot_metrics_t (#1861) 2019-07-25 14:49:02 +04:30
Ebrahim Byagowi 069872c51b
minor 2019-07-25 14:27:43 +04:30
Ebrahim Byagowi 737eb85a4e
Add _MAX_VALUE to disabled baseline types enum 2019-07-25 14:26:30 +04:30
Ebrahim Byagowi dd9a0ed3f0
Replace 0x7FFFFFFFu in enums with HB_TAG_MAX_SIGNED 2019-07-24 00:47:19 +04:30
Ebrahim Byagowi 636ae42237
minor, comment out meta table in list till its use 2019-07-22 22:50:21 +04:30
Khaled Hosny 04c11a19b7
Merge pull request #1851 from khaledhosny/fix-sbix-extents
Fix sbix glyph extents
2019-07-22 16:44:47 +02:00
Ebrahim Byagowi 41ab56e095
Implement meta table parsing 2019-07-22 18:46:52 +04:30
Ebrahim Byagowi a51aa951b5
[metrics] Fix _get_variation API to works with actual coord values 2019-07-22 18:35:55 +04:30
Behdad Esfahbod 77141dff7d [metrics] _-prefix internal symbol 2019-07-22 07:48:32 -04:00