Commit Graph

774 Commits

Author SHA1 Message Date
Ebrahim Byagowi 5193357832 Revert "Remove autotools build support"
This reverts commit 01ac32aab2.
2020-08-11 23:51:59 +04:30
Ebrahim Byagowi 01ac32aab2 Remove autotools build support 2020-08-07 23:28:12 +04:30
Ebrahim Byagowi 694a0c6bbc [meson] Always add icu deps 2020-07-06 22:19:59 +04:30
Ebrahim Byagowi aa732e454a
[tests] minor, ligcarets is fetched from gdef not gsub 2020-07-06 00:10:16 +04:30
Ebrahim Byagowi 122a2897e4 [aat] Remove lcar support
Very low use, only two distinct font files, Apple Chancery.ttf and Hoefler Text.ttc
have it so it really doesn't worth the size addition and so, but one may argue that
whole ligature caret is low use but guess we better to encourage GDEF one anyway.
2020-07-06 00:05:36 +04:30
Ebrahim Byagowi a3b9b94b63
[style] Remove fdsc support (#2541)
It isn't exposed yet and low use between Apple fonts,
32 fdsc table vs 767 OS/2 tables, even Apple doesn't
support it anymore per Ned.
2020-07-06 00:05:21 +04:30
Ebrahim Byagowi 831b090001 rebase draw test as recent roundf changes 2020-06-28 14:31:21 +04:30
Ebrahim Byagowi 0881611778 [fuzzer] Make some use for test_font API calls
Making some use for result of some of the test_font calls to make
sure compilers in fuzzers aren't just optimizing the calls.
2020-06-20 22:06:11 +04:30
Ebrahim Byagowi b4f34539c2 [fuzzer] test more of ot-layout APIs 2020-06-20 22:06:11 +04:30
Ebrahim Byagowi 675854b2ba [test] Add one more test for hb_ot_layout_feature_get_characters 2020-06-19 23:27:39 +04:30
Ebrahim Byagowi 1bac85828c [layout] Rename _get_alternates to _get_glyph_alternates 2020-06-18 22:56:07 +04:30
Ebrahim Byagowi 1348a2c865 [layout] hb_ot_layout_lookup_get_alternates, a new API
An API to retrieve one-to-one alternates from a given GSUB lookup index.
2020-06-18 09:11:07 +04:30
Qunxin Liu 973c47f6c9 [subset] Move 2 experimental public api methods to be private methods in GSUB/GPOS.
2 methods are: hb_ot_layout_closure_lookups and hb_ot_layout_closure_features
2020-06-12 01:20:30 +04:30
Christoph Reiter 03bd6ead44 [meson] Only pass required dependencies to everything
Instead of passing dependencies as required we used one giant shared
dependency list containing all dependencies for every library/executable.
While this kinda works, the specified deps are also used for generating
the pkg-config files and this leads to lots of Requires.private and Libs.private
entries which aren't really needed.

This removes the "deps" array and replaces it with a few smaller ones and
makes sure the public libraries only get passed the dependencies actually
needed.

Fixes #2441
2020-06-04 23:28:57 +04:30
Ebrahim Byagowi 759df46575 [style] Hide behind HB_EXPERIMENTAL_API compile flag 2020-06-04 20:33:39 +04:30
Ebrahim Byagowi d54de56870 [style] Adopt with meson 2020-06-04 20:33:39 +04:30
Ebrahim Byagowi de0ec5f4fe [style] give ptem value when asked for opsz
ptem, used for AAT's tracking/`trak` table is equivalent to opsz of variable fonts.

For variable AAT fonts, such as SFNS, ideally variable axis of the hb_font_t
should be set and equivalent to ptem, https://crbug.com/1005969#c37
2020-06-04 20:33:39 +04:30
Ebrahim Byagowi 22037499b4 [style] New experimental API, hb_style_get_value
Searches variation axes of a hb_font_t object for a specific axis first,
if not set, then tries to get default style values from different
tables of the font.
2020-06-04 20:33:39 +04:30
Ebrahim Byagowi a9d13463b5 [meson] Categorize tests using `suite: [...]`
So one can run a category of interested tests like

  meson test -Cbuild --suite aots --suite src --print-errorlogs

Intead issuing particular tests which also is possible like

  meson test -Cbuild test-shape --print-errorlogs
2020-05-30 16:58:46 +04:30
Ebrahim Byagowi b32d169d22 [test] run aat APIs in shape fuzzer 2020-05-23 13:03:06 +04:30
Ebrahim Byagowi 2264a7011f [tests] some more ligature carets tests 2020-05-23 12:15:18 +04:30
Ebrahim Byagowi 759ab4fe56 [meson] Use subdir_done to simplify test/api/meson.build 2020-05-21 08:24:15 +04:30
Ebrahim Byagowi c68ab4b52b Fix _get_ligature_caret's oob read issue
AAT::Lookup has no other way to detect whether it is returned from
a real and sanitized font data or from a null pool, this checks if
the table has been recognized valid by sanitizer by checking
table's major version which is zero if returned from a null pool and
non-zero if is from a sanitized font data, it is expected the other
calls of the table (unlikely to have more calls however) also do a
similar version check before calling the lookups used on the table.
2020-05-21 06:56:09 +04:30
Ebrahim Byagowi 57886e2162 [test] Enable tests fixed by 461cd5a which was regressed by b986fea 2020-05-21 06:29:56 +04:30
Ebrahim Byagowi ca2705f1fb [tests] Add more tests for _get_ligature_carets 2020-05-21 00:05:54 +04:30
David Corbett b207eab842 Round-trip OpenType tags through BCP 47 2020-05-15 15:00:15 -07:00
Behdad Esfahbod c15146448b
Merge pull request #2264 from harfbuzz/unicode-13
Update to Unicode 13.0.0
2020-05-14 19:12:41 -07:00
Qunxin Liu b2a965df5e [subset] Add support for "--gids" option
cmap subsetting now retains entries associated with any glyph ids explicitly requested
2020-05-11 15:28:58 -07:00
David Corbett fd748fac41 Update to Unicode 13.0.0 2020-04-29 17:17:03 -04:00
Qunxin Liu e53c44e326 [subset] temporarily revert previous cmap commit
Required in https://github.com/harfbuzz/harfbuzz/issues/2356
2020-04-25 12:21:22 +04:30
Ebrahim Byagowi ac26f19c9e Refactor test/api/meson.build and always run test-unicode test 2020-04-19 23:19:18 +04:30
Ebrahim Byagowi c6b3f73b09 [meson] Make harfbuzz-icu separate module optout-able 2020-04-19 02:06:01 +04:30
Christoph Reiter 8ae06c9489 meson: build a separate library for harfbuzz-icu
This adds a seperate library like with autotools.

This also fixes the ico feature option which was just set to required:false
when disabled instead of really disabling it.
Disabling is still broken with msvc because it then tries to find the library
another way, but that's broken for all other deps as well so I left it as is.

For tests only test-unicode.c is using icu specific functions so split it out
into its own category which depends on harfbuzz-icu.

Fixes #2338
2020-04-18 23:34:31 +04:30
ariza 22f7c61acf implement SID to glyph ID mapping with predefined Charset
Also fixes oss-fuzz 21769
2020-04-18 15:42:30 +04:30
Ebrahim Byagowi fefaa8c835
[test] define G_APPROX_VALUE and EPSILON only when used
resolves -Weverything bot complain
2020-04-17 22:28:09 +04:30
Ebrahim Byagowi 29c903223b Move hb_ot_layout_closure_{features,lookups} behind EXPERIMENTAL flag 2020-04-17 22:25:45 +04:30
Ebrahim Byagowi 9b7fb5c23f Move hb_font_get_var_coords_design behind HB_EXPERIMENTAL_API 2020-04-17 20:29:04 +04:30
Ebrahim Byagowi 7054b12206 [meson] Mark rest of non-install executables explicitly 2020-03-24 19:06:09 +00:00
Ebrahim Byagowi 68df3f7dac [meson] test/api, separate subset tests 2020-03-24 19:06:09 +00:00
Ebrahim Byagowi 9bc792f416 [meson] Don't set MALLOC_PERTURB_ as it is already set by meson 2020-03-24 19:06:09 +00:00
Ebrahim Byagowi f22e92bb30 [meson] Update test/api from autotools 2020-03-24 19:06:09 +00:00
Ebrahim Byagowi e248a4e46c [make] Minor reordering on test/api/Makefile.am 2020-03-24 19:06:09 +00:00
Tim-Philipp Müller a3892be701 [meson] fix spurious warning when building test/api C sources
Fixes compiler warning

  test-unicode.c:589:1: warning: ‘test_unicode_properties_lenient’ defined but not used

which didn't happen with autotools.

Reason it does with meson is that the setup for C was slightly wrong.
We would only add -DHAVE_CONFIG_H to cpp_args which is only valid when
compiling C++ code, but not plain C code, and many of these tests were
plain C.

Instead pass -DHAVE_CONFIG_H via add_project_arguments() and make sure
to set both c_args and cpp_args when building test executables.

Fixes https://github.com/harfbuzz/harfbuzz/issues/2257
2020-03-14 15:16:00 +03:30
Ebrahim Byagowi 755a77d660 Move outline draw API behind HB_EXPERIMENTAL_API directive 2020-03-13 08:25:53 +03:30
Ebrahim Byagowi c494d7abcd Remove cmake testing and add meson build bot
CMake tests are broken anyway as py3 changes so let's get rid of them
2020-03-11 20:15:10 +03:30
Khaled Hosny 04438554c8 meson: Update build files after rebase 2020-03-11 19:18:57 +03:30
Tim-Philipp Müller 618584e923 meson: rename incbase to incconfig
Makes it clearer what it's for: config.h. See #4.
2020-03-11 19:18:57 +03:30
Mathieu Duponchelle 920efc0ef7 Add Meson build definitions
Fixes #490

http://mesonbuild.com
2020-03-11 19:18:57 +03:30
Ebrahim Byagowi 6924e29f62 [var] Fix hb_ot_var_get_axis_infos's offset semantic
The API was adding offset to input's infos buffer index also which is
unusual between our APIs and wrong.
2020-03-06 02:01:04 +03:30
ariza c05458ec7f update cff & cff2 subsetters 2020-03-05 01:22:51 +03:30
Ebrahim Byagowi 44169f3396
[draw] Fix invalid rendering of some glyph on Estedad-VF
Basically reverts 11f3fca so I can do the same tested and better later

Fixes #2215
2020-02-29 16:04:03 +03:30
Ebrahim Byagowi 84163c83d3 [draw] Skip commands and paths not contributing anything
They aren't contributing to rendering and making issue for stroking, let's skip them
ourselves as Skia does also https://skia-review.googlesource.com/c/skia/+/268166

They are useful for extracting extents and so which that functionality won't be effected by this change.
2020-02-26 16:09:28 +03:30
Michiharu Ariza c400cb8863
Re-implement hb_set_t::del_range (#2194)
* optimize hb_set_del_range()

fix issue #2193

* fixed bug & added tests

* coding & comment tweaks
2020-02-25 16:06:03 -08:00
ariza 4081439d2a tweak reflecting review & add test cases 2020-02-25 15:03:12 -08:00
Ebrahim Byagowi 152000d9c7 [fuzz] Practice variations on font object 2020-02-25 21:16:57 +03:30
ariza 173b745da8 fixed bug & added tests 2020-02-24 22:56:57 -08:00
ariza a5012e97c4 optimize hb_set_del_range()
fix issue #2193
2020-02-24 17:09:48 -08:00
Ebrahim Byagowi 1f5a54c768 [gvar] fix infinite loop introduced by 11f3fca
The attempt on removing end_points had made the code unreadable
and has intrdouced infinite, fixed by making the code clear what
it tries to achieve.
2020-02-24 14:30:07 +03:30
Ebrahim Byagowi 0cf050a7b1 [draw] Merge consequent move-to commands of CFF/CFF2 2020-02-23 23:23:50 +03:30
Ebrahim Byagowi 86bd5a0ba1 [draw] End CFF paths with a line-to
Issue a line-to command when start and end point of a path isn't same, matches freetype also.
2020-02-23 23:23:50 +03:30
Ebrahim Byagowi 8c652f72fc Minor, switch to https links where possible 2020-02-19 16:32:44 +03:30
Ebrahim Byagowi 60f8f384f9 [glyf] Switch to ttf-parser's glyf to path algorithm
It consumes each point at a time and doesn't need to know contour size before hand
2020-02-18 00:49:09 +03:30
Ebrahim Byagowi 1c015d3e9f [fuzz] minor fuzzer case move, oops 2020-02-12 19:19:37 +03:30
Ebrahim Byagowi 49341faee2 [fuzz] minor, move two fuzzer cases to their correct place 2020-02-12 19:17:18 +03:30
Ebrahim Byagowi 97229244eb [fuzzer] Fix hb-set-fuzzer minor overflow issue
Size shouldn't be smaller than the struct not its pointer size.

Fixes https://crbug.com/oss-fuzz/20655
2020-02-12 15:41:51 +03:30
Ebrahim Byagowi ab2d3ec542 [var] Implement hb_font_get_var_coords_design
Hold design coords and simulate when normalized coords are set directly.
2020-02-08 11:04:34 +03:30
Garret Rieger 2742c81624 Fix page_map corruption in hb_set_t during process().
If a process operation results in less pages then the current set has, it will likely corrupt the page_map since it overwrites page_map entries ahead of where it's processing. This fixes that problem by removing page_map entries that will be dropped. Then dropping orphaned pages and re-indexing retained pages.
2020-02-08 10:27:44 +03:30
Ebrahim Byagowi b4d3bf1d8a [draw] Add hb_draw_funcs_is_immutable and hb_draw_funcs_make_immutable 2020-02-06 11:52:32 +03:30
Ebrahim Byagowi 63b8190db8 [test] minor
Remained from previous naming.
2020-02-06 11:38:35 +03:30
Ebrahim Byagowi 3a98c7fae1 [glyf] Skip empty contours
As https://savannah.nongnu.org/bugs/index.php?57701
2020-02-06 11:35:48 +03:30
Ebrahim Byagowi c31762e9e8
[test] minor
don't test first ten glyph, just testing cp just like other API calls is enough
2020-02-05 23:12:37 +03:30
Ebrahim Byagowi 43253e404d Merge remote-tracking branch 'upstream/master' 2020-02-05 17:45:19 +03:30
ckitagawa-work 774725b43a
[subset] Avoid incorrectly dropping cmap for NotoColorEmoji.ttf
NotoColorEmoji.ttf uses two cmap subtables

 Format 14 | Platform ID 0 | Platform Encoding ID  5
 Format 12 | Platform ID 3 | Platform Encoding ID 10

This combination results in the cmap table being dropped during subsetting despite being valid/required.
2020-02-05 16:13:10 +03:30
ckitagawa e128f80278 parent 777ba47b50
author ckitagawa <ckitagawa@chromium.org> 1579631743 -0500
committer ckitagawa <ckitagawa@chromium.org> 1580506176 -0500

[subset] Add CBLC support
2020-01-31 16:37:30 -05:00
ckitagawa 7d542a5274 Refactor to two iterators 2020-01-29 10:21:00 -05:00
ckitagawa 49b98e8650 Fix nullptr de-reference failure if both blobs in a subset test are 0 in size 2020-01-28 15:35:53 -05:00
ckitagawa ed857c4680 [subset] Add COLR support 2020-01-28 15:35:53 -05:00
Ebrahim Byagowi d106900bfd [draw][glyf] Implement quadratic to cubic call translation 2020-01-28 15:27:27 +03:30
Ebrahim Byagowi 74fdcdcac8 [draw] Rename conic_to to quadratic_to 2020-01-28 13:45:22 +03:30
Ebrahim Byagowi ac81e94016 Rename hb_outline_decompose to hb_font_draw_glyph and hb_outline_decompose_funcs_t to hb_draw_funcs_t 2020-01-28 13:24:49 +03:30
Ebrahim Byagowi 981125aa2a Rename hb_ot_glyph_* to hb_outline_* 2020-01-27 23:43:54 +03:30
Ebrahim Byagowi 30857089a5 [test][glyph] add subcomponent scale test 2020-01-27 21:16:57 +03:30
Ebrahim Byagowi 1438bae7a5 [ot-glyph] Add fontkit non variables fonts tests 2020-01-26 23:58:34 +03:30
Ebrahim Byagowi 9bb1c79a2c [ot-glyph][test] Avoid sprintf use 2020-01-26 23:58:34 +03:30
Ebrahim Byagowi 99f8e52d5e [ot-glyph] Add fontkits's variations toSVG tests 2020-01-26 23:58:34 +03:30
Ebrahim Byagowi e44982f548 [ot-glyph] Add ttf-parser's outline_glyph tests 2020-01-26 23:58:34 +03:30
Qunxin Liu 36a5c042d7 [subset] Add "--name-languages" and "--name-legacy" options
Make name table subsetting consistent with fontTools
2020-01-24 23:17:04 +03:30
Ebrahim Byagowi 5532374f61 [ot-glyph] Add a test for #2053 2020-01-24 20:42:12 +03:30
Ebrahim Byagowi e171beeb5f Revert "[subset] Add "--name-languages" and "--name-legacy" options"
Causes tests failures, please reapply when tests are fixed, thanks.

This reverts commit fd85818b5b.
2020-01-24 19:51:32 +03:30
Qunxin Liu fd85818b5b [subset] Add "--name-languages" and "--name-legacy" options
Make name table subsetting consistent with fontTools
2020-01-23 17:24:05 -08:00
Qunxin Liu c370da45ff [subset] Cmap table: remove encodingRecord entry for empty cmap4 subtable 2020-01-23 17:23:55 -08:00
ariza acb4627eba add api test 2020-01-23 10:50:52 -08:00
Ebrahim Byagowi 7633b7695e
Merge pull request #2016 from ebraminio/glyf
Implement glyph outline path API
2020-01-23 18:51:40 +03:30
Ebrahim Byagowi 02f324c949 [ot-glyph] remove open callback
Apparently it wasn't requested actually and can be detected easily
as paths are opened usually when move command is issued anyway.
2020-01-23 15:12:15 +03:30
Ebrahim Byagowi 684ff3e0cd [ot-glyph] noop->nil, fix close path 2020-01-23 14:48:59 +03:30
ariza 72cbfb9059 remove empty lookup subtables
Added a variant of subset_offset_array which takes an extra arg passed to serialize_subset for this impl.
Added a new api test "test-subset-gpos" for this.
2020-01-21 16:53:19 -08:00
Qunxin Liu e565d1f9bc [subset] subset lookup/feature/script lists for GSUB/GPOS 2020-01-15 14:04:33 -08:00
ckitagawa 93376a6436 Add unittests 2020-01-15 13:36:01 -08:00
Ebrahim Byagowi 79fed9a1e4 [ot-glyph] Add open/close callbacks 2020-01-14 17:34:59 +03:30
Ebrahim Byagowi ec1fba1388 [ot-glyph] make hb_ot_glyph_decompose_funcs_t struct opaque 2020-01-14 15:55:23 +03:30
Ebrahim Byagowi d7c3cb18ee [ot-glyph] minor on tests 2020-01-13 18:17:21 +03:30
Qunxin Liu 0b39c48064 [subset] closure lookups for GSUB/GPOS 2020-01-10 13:11:06 -08:00
Ebrahim Byagowi 42f4f1ea50 [ot-glyph] Add tests for hb_ot_glyph_decompose 2020-01-11 00:33:31 +03:30
Ebrahim Byagowi 06a1fcb3b4 [ot-glyphs] fix the tests 2020-01-10 23:12:30 +03:30
Ebrahim Byagowi fddf79fc37 [glyf] minor 2020-01-10 14:25:07 +03:30
Qunxin Liu 1db2c1d0da fix for cmap4 and OS_2 subsetting: maximum character code allowed is 0xFFFF 2020-01-09 10:00:32 -08:00
Ebrahim Byagowi 33c3d63a0a
Merge pull request #1594 from harfbuzz/var-subset
Issue 1558: [subset] TrueType/CFF2 variable font
2019-12-31 13:52:50 +03:30
blueshade7 ed94e41065 fixed api test test-ot-glyphname 2019-11-26 18:34:06 +00:00
blueshade7 7a4745ba8d added api test test-ot-glyphname 2019-11-26 18:34:06 +00:00
blueshade7 ea8fdfa079 Merge branch 'master' into var-subset 2019-11-22 15:59:09 -08:00
Khaled Hosny dd288840d6 [cmap] Check GID before adding ranges in format 4 & 12
Fixes https://github.com/harfbuzz/harfbuzz/issues/2031
2019-10-29 02:09:13 +02:00
Ebrahim Byagowi 453050ad30 Merge remote-tracking branch 'upstream/master' into var-subset 2019-10-13 08:45:29 +03:30
Ebrahim Byagowi dc45f22521 [ot-metrics] Don't use mixed scaled and not scaled for generating extents 2019-10-08 23:27:39 +03:30
Ebrahim Byagowi d73cdcf361 [ot-font] Apply font scaling before turning to int 2019-10-08 11:11:18 +03:30
Michiharu Ariza b9ff43c162 Implement gvar table and variable glyf
Split from Ariza's "[subset] TrueType/CFF2 variable font" work on #1594
2019-10-06 08:58:40 +03:30
Ebrahim Byagowi 19d45dcab7 Merge remote-tracking branch 'upstream/master' into var-subset 2019-10-03 13:39:17 +03:30
Evgeniy Reizner 7d4da8b862 Remove duplicated tests from test-ot-tag (#1958) 2019-09-06 12:24:32 -04:00
Ebrahim Byagowi 9ff32b79b3 Merge remote-tracking branch 'upstream/master' into glyf-rebase 2019-08-29 19:53:18 +04:30
Ebrahim Byagowi 28620310b8
[test] Avoid alloca use as clang complain
Fixes https://circleci.com/gh/harfbuzz/harfbuzz/108171 complain
2019-08-29 14:55:54 +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
Behdad Esfahbod 163a66dc73 [test] Add test for aaa85931f3 2019-08-20 14:22:57 -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
Qunxin Liu 37572882e7 [subset] cmap table to use _subset2 and new iterator frameworks 2019-08-05 11:26:34 -07:00
Michiharu Ariza 6b3e093911 Merge branch 'master' into var-subset 2019-07-31 16:04:48 -07:00
Ebrahim Byagowi 8c0a2e68ad
[fuzz] Add dummy call of the added APIs (#1886) 2019-07-30 13:16:15 +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
blueshade7 6e3bfecf35 Merge branch 'master' into var-subset 2019-07-29 12:25:43 -07:00
Ebrahim Byagowi 2c2a2b97db [meta] Rename hb_ot_meta_t to hb_ot_meta_tag_t 2019-07-29 22:43:09 +04:30
Ebrahim Byagowi 62932c14bd [meta] Rename ot-metadata to ot-meta per review 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 356b68a00a
[metrics] Add a test that actually practices variation (#1858) 2019-07-25 23:22:00 +04:30
blueshade7 5988ab8a4e Merge branch 'master' into var-subset 2019-07-22 14:36:16 -07:00
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 a51aa951b5
[metrics] Fix _get_variation API to works with actual coord values 2019-07-22 18:35:55 +04:30
Khaled Hosny c9796d15e1 Fix sbix glyph extents
* The ‘height’ needs to be negated since the API returns “distance from
  top to bottom side”.
* Similarly, the ‘y_offset‘ needs to be added to the height to get the
  ‘y_bearing’, since sbix’s offset is “the point in the glyph relative
  to its lower-left corner which corresponds to the origin” while
  ‘y_bearing’ is the “top side of glyph from origin”.

With these changes the sbix glyph metrics return values similar to other
tables, as they were otherwise unusable.
2019-07-22 05:42:34 +02:00
Ebrahim Byagowi 87e628436e Implement a simple API for fetching opentype metrics
Fixes https://github.com/harfbuzz/harfbuzz/pull/1432
2019-07-18 14:15:58 -07:00
blueshade7 386a4a64f5 regenerate subset api test result SourceHanSans-Regular.41,4C2E.retaingids.otf 2019-07-12 17:05:34 -07:00
blueshade7 670768e5b9 fix inc-bimap for subsetting VarStore with retain-gids 2019-07-12 16:14:23 -07:00
blueshade7 8bf989ea70 update from master 2019-07-08 17:13:29 -07:00
Michiharu Ariza 5763a92749 Merge branch 'master' into var-subset 2019-07-01 15:17:19 -07:00
Behdad Esfahbod f53590971c [test] Make Unicode tests strict against internal UCD
https://github.com/harfbuzz/harfbuzz/pull/1799
2019-06-27 13:42:51 -07:00
David Corbett d42264f151 Test at least one character per Unicode version 2019-06-27 13:38:03 -07:00
David Corbett 4f37c0db9b Remove 'mym3' 2019-06-11 15:41:37 -07:00
Michiharu Ariza 4ddab6facc Merge branch 'master' into var-subset 2019-06-05 11:21:27 -07:00
Behdad Esfahbod 87dd4bff1c [math] Rename HB_MATH_GLYPH_PART_FLAG_EXTENDER
To HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER.  Added a deprecated macro.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1734
2019-05-30 11:26:17 -04:00
Ebrahim Byagowi 8a13371847
[test] minor, fix copyright
nothing important, fixing a copy paste error inconsistency
2019-05-28 13:54:45 +04:30
rsheeter 96de94768b
Merge pull request #1722 from googlefonts/glyf
[subset] Use iterators in glyf/loca subsetting
2019-05-24 11:22:41 -07:00
Rod Sheeter e662532833 [subset] Cppcheck complaints 2019-05-24 10:39:56 -07:00
Qunxin Liu 993d81b9c5 [subset] Add one ttf file with fvar/STAT tables to integration test
Ignore gvar/MVAR/HVAR table
add support for --nameIDs=* option
2019-05-22 17:20:45 -07:00
Rod Sheeter 51a0129f73 [subset] Thar be comparison of integers of different signs 2019-05-21 20:12:19 -07:00
Rod Sheeter 349d692b0e [subset] Iter in and out for loca 2019-05-21 12:38:53 -07:00
Rod Sheeter d1b12a5465 Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into glyf 2019-05-20 21:29:54 -07:00
Rod Sheeter 5cedda5e4a [subset] Fix null pointer deref, tidy up a bit 2019-05-20 21:25:42 -07:00
Rod Sheeter 8a84b540c7 [subset] Tests passing using iterator based glyf 2019-05-20 21:25:42 -07:00
Rod Sheeter 82bbec3063 Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into glyf 2019-05-20 21:25:42 -07:00
rsheeter 3a4c928fcf [subset] Fix glyf tests except hint stripping & local test asan 2019-05-20 21:25:42 -07:00
Garret Rieger 0ff3618c2d [subset] Use hb_subset_input_t inside of subset_options_t so that input defaults are shared between the library and cli. 2019-05-20 13:35:46 -07:00
Garret Rieger 3be0ffe45d [subset] Add drop tables to subset input. 2019-05-20 13:35:46 -07:00
Garret Rieger 6555f20958 [subset] Truncate empty gids at the end in retain-gids mode. 2019-05-16 10:34:53 -07:00
Behdad Esfahbod f39934983f [ucdn] Fix Hangul composition
https://github.com/grigorig/ucdn/issues/23
2019-05-14 00:13:21 -07:00
Behdad Esfahbod 148d883680 [test] Don't call deprecated API 2019-05-13 14:34:53 -07:00
Garret Rieger e8ef0e627c [subset] WIP convert hdmx subsetting to use iterators. 2019-05-08 15:47:24 -07:00
Behdad Esfahbod 5ac4ab6868 [subset] fix for name table serializing with new serializer machinery 2019-05-07 10:59:03 -07:00
Michiharu Ariza 1223a352b7 Merge branch 'master' into var-subset 2019-04-29 16:43:48 -07:00
Qunxin Liu 1ca4b5c770 [subset] Add unit test for str de-dup
Also move the implementation of some methods from the .cc to the .hh
2019-04-26 15:24:47 -07:00
Qunxin Liu 6faac8df83 [subset] Subsetting Name Table Step 4
Add unit test and integration test
2019-04-26 15:24:47 -07:00
Behdad Esfahbod 42f4bd6b80 Minor warning fix again 2019-04-18 19:06:07 -04:00
Michiharu Ariza c87488b46d Merge branch 'master' into var-subset 2019-04-17 12:07:15 -07:00
Michiharu Ariza 49fe81fdeb updated api test results for HVAR/VVAR subset changes 2019-04-17 11:48:12 -07:00
David Corbett 6745a600bf Comment out ot_languages where fallback suffices 2019-04-17 10:28:59 -04:00
Michiharu Ariza 3e524bf772 fix VarData serialize to remove unused data sets
add api test case for that
2019-04-12 12:48:48 -07:00
Michiharu Ariza ab9d30965d Add tt var metrics test cases & bug fixes 2019-04-10 17:21:37 -07:00
Michiharu Ariza 0008963b28 add support of anchor point & SCALED/UNSCALED_COMPONENT_OFFSET
some code cleanup
2019-03-29 18:27:21 -07:00
Michiharu Ariza 9c5d694af2 add HVAR & VVAR advance width api test 2019-03-29 18:27:21 -07:00
Michiharu Ariza ae3db1f4e3 added api test for subset VVAR & bug fix
added a mod copy of SourceSerifVariable-Roman.ttf with VVAR as a test font
2019-03-29 18:27:08 -07:00
Michiharu Ariza fe5aa8b36c added TT VF full font test & fixed bugs
updated CFF2 VF api test results too
2019-03-29 18:26:46 -07:00
Michiharu Ariza 2bd2e656f9 update CFF2 test results 2019-03-29 18:26:20 -07:00
Michiharu Ariza 212dcb758c add api test cases for HVAR with index map (and fix) 2019-03-29 18:26:20 -07:00
Michiharu Ariza dc10a7ef60 add gvar & HVAR retain-gids test cases 2019-03-29 18:26:20 -07:00
Michiharu Ariza 43420dfa96 fix test build 2019-03-29 18:26:20 -07:00
Michiharu Ariza 6ee71166b0 add api tests for subset gvar & HVAR; bug fixes 2019-03-29 18:26:20 -07:00
Michiharu Ariza 6e066464f0 replaced tt var api test with a composite glyph
for better coverage
2019-03-29 18:26:20 -07:00
Michiharu Ariza 511518c759 add api test for tt var advance widths
stripped HVAR from SourceSansVariable-Roman.abc.ttf so glyf gets parsed
2019-03-29 18:26:20 -07:00
Michiharu Ariza 139e87b56c fix tt var extents & add test 2019-03-29 18:25:35 -07:00
Ebrahim Byagowi 5bbe78a0f3 Allow zero length ranges in sanitization (#1617)
Fixes fvar table sanitization where there are no named instance
by allowing zero length ranges starting from Null() address.

Fixes #1607
2019-03-29 18:15:00 -07:00
Garret Rieger d0b6d539f6 Make hb_subset_input_glyph_set () actually do something. 2019-03-29 18:14:59 -07:00
Ebrahim Byagowi 8aaab78efc
Allow zero length ranges in sanitization (#1617)
Fixes fvar table sanitization where there are no named instance
by allowing zero length ranges starting from Null() address.

Fixes #1607
2019-03-14 16:49:42 -07:00
Garret Rieger 4f37ab63de Make hb_subset_input_glyph_set () actually do something. 2019-03-01 10:49:46 -08:00
Michiharu Ariza e2856c2d85 retain FDSelect & FDArray with --retain-gids
so in sync with fonttools behavior
2019-02-07 15:32:32 -08:00
Michiharu Ariza c12862657f added desubroutinize & retain-gids full test cases with CFF fonts
and CFF retain-gids fixes
2019-02-01 14:50:01 -08:00
Michiharu Ariza f2908b4d8f Implement subset --regain-gids option with CFF1/2
along with api tests & expected results
2019-01-31 14:16:37 -08:00
Garret Rieger ccc59dc612 [subset] Add unit test for glyf subsetting and retain gids. 2019-01-29 13:19:21 -08:00
Behdad Esfahbod 789396ed6b Remove wrongly added files 2019-01-22 10:51:21 +01:00
Michiharu Ariza 28917e58f9 init interp_env_t::hintmask_size
fixes issue #1547
2019-01-18 09:43:51 -08:00
Behdad Esfahbod 686e6f2e40 Fix automake warnings
[skip ci]
2018-12-30 11:28:06 -05:00
fanc999 3ee4ea9456 Fix build on older Visual Studio versions (#1499)
* src/hb-cff-interp-dict-common.hh: Use ull for unsigned int64_t

The llu suffix does not work for older Visual Studio versions
(pre-2013), but ull works for all the compilers that we attempt to
support.

* test/api: Fix build on pre-C99 compilers

Ensure variables are declared at the top of the block.

* src/hb-dsalgs.hh: Add specialization for hb_is_signed<> for __int8

Pre-Visual Studio 2010 does not consider __int8 (which is typedef'ed to
int8_t) to be equivilant to signed char, so the compiler cannot find the
corresponding hb_is_signed<> specialization that is needed.

The interesting thing is unsigned __int8 is considered to be equivilant
to unsigned char, so as the other types (short, int, long) that we look
for here, so only the specialization for __int8 is added here.

This will fix builds on Visual Studio 2008 at least.
2018-12-19 22:26:54 -05:00
Chun-wei Fan 1e09add232 test/api: Fix building on pre-C99 compilers
Ensure variables are declared at the top of the block.
2018-12-12 01:32:01 +08:00
Ebrahim Byagowi 01f628cf55 [aat] Expose hb_aat_layout_has_tracking API 2018-12-03 22:27:26 +03:30
Behdad Esfahbod 967a204ee9 Minor 2018-12-01 19:28:17 -05:00
Michiharu Ariza 32d291ae89 Merge branch 'master' into cff-subset 2018-11-28 16:27:45 -08:00
Behdad Esfahbod 926f512f35 [aat.feat] Rework API and implementation
Fixes https://github.com/harfbuzz/harfbuzz/pull/1346
2018-11-25 01:16:02 -05:00
Behdad Esfahbod 2cb235d021 [aat.feat] Fix enum namespace 2018-11-25 01:16:02 -05:00
Behdad Esfahbod e20f81f4fa [aat] Rename feat API a bit more 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi 54f4c17f0a [feat] Rename API uses of setting to selector 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi 9c64b216ec [feat] Apply renamings and add documentation 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi 4009a05ca7 [feat] Address Behdad comments 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi 19b6025534 [feat] Address @behdad comments 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi fbad794bd2 [feat] Add feature iteration API 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi 7a0471aa35 [feat] Turn AAT feature id into enum 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi a157b3e4eb [feat] Apply @behdad comments 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi 3aff3f822f [feat] Apply @drott and @jfkthame comments 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi b791bbbae4 [feat] Apply @jfkthame reviews 2018-11-25 01:16:01 -05:00
Ebrahim Byagowi 95abd53758 [feat] Expose public API
* hb_aat_get_feature_settings
2018-11-25 01:16:01 -05:00
David Corbett 018ba46e4d Don't canonicalize '@' to '-' in language tags
Fixes #1406.
2018-11-23 13:21:22 -05:00
Behdad Esfahbod f48bb9a393 [var] Deprecated axis enumeration API and add new version
New version has axis flags.

New API:
+hb_ot_var_axis_info_t
+hb_ot_var_find_axis_info()
+hb_ot_var_get_axis_infos()

Deprecated API:
-HB_OT_VAR_NO_AXIS_INDEX
-hb_ot_var_axis_t
-hb_ot_var_find_axis()
-hb_ot_var_get_axes()
2018-11-20 20:46:14 -05:00
Michiharu Ariza 1ecbf4d3e3 Merge branch 'master' into cff-subset 2018-11-20 17:19:05 -08:00
Behdad Esfahbod 831ba74382 Fix Codacy "issues" 2018-11-20 01:16:08 -05:00
Michiharu Ariza b67a7c731f drop dotsection as hint along with test case 2018-11-16 12:28:24 -08:00
Michiharu Ariza 072c7aba92 use 2-byte offset instead of 4-byte for local subrs
more than enough since local subrs immediately follow its corresponding private dict, as the result 2-byte redunction for each font dict with local subrs
updated api test expected subset fonts accordingly
2018-11-15 15:41:46 -08:00
Michiharu Ariza 3787c07856 Implemented seac for extents & subset along with API tests 2018-11-14 13:38:03 -08:00
Michiharu Ariza 0dfa584cb4 changed Adobe company name 2018-11-12 08:47:07 -08:00
Michiharu Ariza fb2a037f54 Merge branch 'master' into cff-subset 2018-11-10 16:23:11 -08:00
Ebrahim Byagowi b986fead0a Hook AAT's lcar to _get_ligature_carets 2018-11-08 23:06:26 +03:30
Michiharu Ariza 0996c0ff62 implented no-desubroutinize with CFF2 along with API test
replaced AdobeVFPrototype.abc.otf with a hinted (maually) & subroutinized copy
replaced expected results as well
2018-11-07 14:48:37 -08:00
Michiharu Ariza 43ee0e4d00 Merge branch 'master' into cff-subset 2018-11-06 09:57:17 -08:00
Khaled Hosny 5c3ccbc634 Another missing backlash
Did this ever work?
2018-11-06 18:10:56 +02:00
Khaled Hosny d29602b962 Add missing backslash 2018-11-06 18:07:47 +02:00
Behdad Esfahbod b062378ce6 [test] Minor 2018-11-06 10:20:36 -05:00
Ebrahim Byagowi b6112e5ea4
[test] Fix -Weverything bot complain 2018-11-06 11:42:47 +03:30
Ebrahim Byagowi a49df419f0
[test] Test hb_ot_name_{list_names,get_utf8} on test-ot-name 2018-11-06 11:26:30 +03:30
Behdad Esfahbod 6482fda519 [fuzzing] Fuzz glyph-id etc in test-ot-face 2018-11-05 15:03:18 -05:00
Michiharu Ariza 1682d1bbec Merge branch 'master' into cff-subset 2018-11-04 13:25:41 -08:00
Behdad Esfahbod bce437cf0b [test] Call test-ot-face.c test from hb-shape-fuzzer
Should increase coverage...
2018-11-04 02:53:25 -05:00
Behdad Esfahbod 777c22425c [test] More funcs in test-ot-face 2018-11-04 02:40:20 -05:00
Behdad Esfahbod 9779e602ed [test] Add test for empty face 2018-11-03 20:50:56 -04:00
Ebrahim Byagowi b8a78ce201
[BASE] Improvements (#1347) 2018-11-03 22:28:30 +03:30
Michiharu Ariza 34b06d994a fixed FDSelect size calcluation 2018-11-02 16:40:20 -07:00
Michiharu Ariza 481fdfdc23 Merge branch 'cff-subset' of https://github.com/harfbuzz/harfbuzz into cff-subset 2018-11-02 15:28:09 -07:00
Michiharu Ariza 1bc710a8c9 added CFF1 desubr api test cases & bug fixes 2018-11-02 15:28:01 -07:00
Michiharu Ariza e600e5440b Merge branch 'master' into cff-subset 2018-11-01 16:13:56 -07:00
Ebrahim Byagowi cad90be4ea
[test] minor 2018-11-01 13:39:06 +03:30
Behdad Esfahbod a7aba99baa [name] Rename hb_name_id_t to hb_ot_name_id_t
https://github.com/harfbuzz/harfbuzz/pull/1254
2018-10-30 14:04:09 -07:00
Behdad Esfahbod 56738429d6 [test] Fix warnings 2018-10-30 01:33:22 -07:00
Ebrahim Byagowi 7170e35096
Rename deprecated symbols list file name and clean it up (#1328) 2018-10-29 13:11:01 +03:30
Ebrahim Byagowi c929ccfcea [ot-color/png] Consider strike ppem on scaling 2018-10-28 22:40:40 -07:00
Ebrahim Byagowi 307d61867a [ot-color] Make PNGHeader reading actually work 2018-10-28 18:33:10 -07:00