Behdad Esfahbod
341206eb60
[vector] Make hb_vector_t relocatable / nestable
...
Ugly, but...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1227
2018-10-05 18:39:48 +02:00
Michiharu Ariza
f212c050ad
Added VORG struct and its subsetter
...
new file: hb-ot-vorg-table.hh
2018-09-20 09:45:43 -07:00
Behdad Esfahbod
20a11a824d
Revert "[subset] Disable GSUB/GPOS subsetting for now"
...
This reverts commit 616fd34a69
.
2018-09-10 13:56:28 +02:00
Behdad Esfahbod
616fd34a69
[subset] Disable GSUB/GPOS subsetting for now
...
So I can get a release out. I haven't debugged those yet, and they
are producing bad tables.
2018-09-10 11:19:49 +02:00
Michiharu Ariza
1e88b1755c
Merge branch 'master' into cff-subset
2018-09-07 10:50:55 -07:00
Behdad Esfahbod
5f17dbc302
[subset] Fix div-by-zero
2018-09-07 10:24:22 -04:00
Michiharu Ariza
22b88632d5
Merge branch 'master' into cff-subset
2018-09-06 22:27:44 -07:00
Behdad Esfahbod
1e6599f596
Fix older compilers re '>>' at nested template declarations
2018-09-05 19:29:42 -07:00
Behdad Esfahbod
a1e5e07c73
[subset] Hook up GSUB/GPOS, but still disabled
...
They are still in the drop list.
2018-09-05 16:24:28 -07:00
Behdad Esfahbod
aba0a945c5
[subset] Add hb-subset-input.hh and make hb-subset.hh toplevel include
2018-08-31 13:25:19 -07:00
Behdad Esfahbod
93fe0faaee
[subset] Clean up hb_subset_input_t API
2018-08-29 18:24:03 -07:00
Behdad Esfahbod
d237ce7181
[subset] Bail if subsetting a table failed
2018-08-29 18:13:52 -07:00
Behdad Esfahbod
f39166f0c0
[subset] Remove unused hb_subset_profile_t
...
We might reintroduce it later, but for now remove, as it was unused.
Some things that should have been in this object (drop_hints, etc)
are already in hb_subset_input_t. So, for now, keep everything there.
2018-08-29 18:09:55 -07:00
Michiharu Ariza
8af9690ac7
Merge branch 'master' into cff-subset
...
Renamed cff "private" source/headers without the suffix
2018-08-29 13:26:17 -07:00
Behdad Esfahbod
dae39c58fb
[face] Introduce character-map API
...
New API:
+hb_face_collect_unicodes
+hb_face_collect_variation_selectors
+hb_face_collect_variation_unicodes
2018-08-25 22:44:39 -07:00
Behdad Esfahbod
c77ae40852
Rename hb-*private.hh to hb-*.hh
...
Sorry for the noise, downstream custom builders. Please adjust.
2018-08-25 22:36:36 -07:00
Behdad Esfahbod
b09a0336ca
[cmap] More hb_auto_t<>(...)
2018-08-25 22:04:39 -07:00
Behdad Esfahbod
1dcf5fb038
[cmap Add hb_subset_collect_variation_unicodes()
...
To be moved to hb-face.h later.
2018-08-25 16:12:18 -07:00
Behdad Esfahbod
4806b3800d
[cmap] Add hb_subset_collect_variation_selectors()
...
To be moved to hb-face later.
2018-08-25 15:58:40 -07:00
Behdad Esfahbod
d60c465627
Rename get_all_codepoints() to collect_unicodes()
2018-08-25 08:48:42 -07:00
Behdad Esfahbod
aadb2a9188
Add face-builder
...
New API:
+hb_face_builder_create
+hb_face_builder_add_table
2018-08-25 08:18:53 -07:00
Michiharu Ariza
e67bb3fbcf
renamed OT::cff to OT::cff1 for consistency
...
along with HB_OT_TAG_cff1
2018-08-16 00:25:57 -07:00
Michiharu Ariza
fdbfa1848b
renamed CFF version 1 structs and sources to CFF1 from CFF
...
"CFF" is used for shared structs & sources between CFF1 & CFF2
except OT:cff is for CFF version 1 table
2018-08-16 00:13:09 -07:00
Michiharu Ariza
64c5412264
Added CFF support
...
Added sources hb-ot-cff-table.hh, hb-subset-cff.cc & hh
Templatized Index because CFF uses 16-bit count while CFF2 uses 32-bit
Misc code cleanup & bug fixes
2018-08-10 11:07:07 -07:00
Michiharu Ariza
161ece4c30
Merge branch 'master' into cff-subset
2018-08-06 11:23:50 -07:00
Behdad Esfahbod
b912fbea17
Remove most uses of direct comparison to Null objects
2018-08-06 06:38:59 -07:00
Michiharu Ariza
e2fd49e477
Merge branch 'master' into cff-subset
2018-08-02 11:39:22 -07:00
Behdad Esfahbod
ed7b2e58fc
Remove OT namespace from hb-machinery-private.hh
2018-08-02 00:08:08 -07:00
Michiharu Ariza
161b642ec5
Merge branch 'master' into cff-subset
2018-07-30 12:22:09 -07:00
Behdad Esfahbod
9583e0077d
Port more off of Sanitizer<>
2018-07-22 22:43:25 -07:00
Michiharu Ariza
3a61c3e935
first push of CFF/CFF2 work
...
Index, Dict structs
hooked up to hb-subset (takes CFF2, outputs empty CFF2)
2018-07-18 14:17:52 -07:00
Behdad Esfahbod
be458eb059
Include more basic internal headers from hb-private.hh
2018-07-10 14:41:04 +02:00
Behdad Esfahbod
bddeb2b10c
Minor renamings of internal inline functions
2018-07-10 14:13:21 +02:00
Behdad Esfahbod
cc0b04f48f
[subset] Remove HB_SUBSET_BUILTIN
...
Just include hb-static.cc in libharfbuzz-subset.so source list as
well. Those building it built-in will include hb-static.cc once
already. No need for any gymnastics.
2018-06-12 18:24:54 -04:00
Behdad Esfahbod
b8e406f0c7
More fixes for SunStudio 12.6 build
...
Followup to https://github.com/harfbuzz/harfbuzz/pull/1053
2018-06-10 17:22:38 -04:00
Garret Rieger
a5673da9be
[subset] Add drop_ot_layout setting to subset input.
2018-06-08 12:09:34 -06:00
Behdad Esfahbod
f9abbf83b6
Fix fallout from 975bdd5ef5
...
Ouch!
2018-06-02 15:46:08 -07:00
Behdad Esfahbod
f7515769fd
[vector] Use Crap pool in push() as well
2018-06-01 17:48:37 -07:00
Garret Rieger
251cc977e9
[subset] Switch to using hb_map_t inside of hb_subset_plan_t.
2018-05-30 17:23:59 -06:00
Behdad Esfahbod
fd3d004231
Move pool definitions to hb-static.cc
2018-05-24 15:58:26 -07:00
Behdad Esfahbod
7f7b1370d3
Fix Uniscribe build
...
If a pointer type was passed to Null(), reinterpret_cast<> was
complaining about qualifiers being removed. Turns out I need the const on
the other side of "Type" to fix that. Also remove unused const from
NullPool type.
2018-05-24 14:09:04 -07:00
Behdad Esfahbod
f83e992c8b
Mark CrapPool thread_local
...
Not sure if I like to keep it. For now, aim for correctness.
2018-05-24 13:53:02 -07:00
Behdad Esfahbod
5d80129891
Add CrapPool
...
Common Regoin for Access Protection. Like the NullPool, but writable.
2018-05-24 13:53:02 -07:00
Behdad Esfahbod
63f57f4dab
Mark more unsized array's as arrayZ
2018-05-08 16:56:11 -07:00
Behdad Esfahbod
eba1c16a60
Always lock blob in sanitize. Remove blob->lock_as() in favor of blob->lock()
2018-05-08 02:47:42 -07:00
Behdad Esfahbod
b4fa505014
Move Sanitizer::lock_instance<>() to blob->lock_as<>().
2018-05-08 02:45:08 -07:00
Behdad Esfahbod
abc12f7b81
Move null pool to hb-private
2018-05-08 02:23:36 -07:00
Behdad Esfahbod
5c3112aec8
s/hb_prealloced_array_t/hb_vector_t/g
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1017
2018-05-01 19:07:04 -04:00
Behdad Esfahbod
a60ba7964e
s/finish/fini
...
For consistency.
2018-05-01 19:01:25 -04:00
Garret Rieger
21a181af2b
[subset] sketch out support for a call that lists all codepoints present in a font. Implement support for it in format 4 cmap sub table.
2018-04-16 16:29:26 -06:00
Garret Rieger
1c3372786c
[subset] fix infinite loop bug in looping through tables for subsetting.
2018-03-27 13:47:42 -06:00
Garret Rieger
07851aae9d
[subset] Couple of fixes for fuzzer discovered issues. ( #924 )
...
* [subset] sanitize individual DeviceRecord's as part of hdmx sanitization.
* [subset] Fix out of bounds read with non-two byte align glyphs.
* [subset] Just use size_device_record >= DeviceRecord::min_size.
* [subset] Add TODO.
* [subset] Re-order checks in hdmx sanitize.
2018-03-26 19:56:56 -07:00
Behdad Esfahbod
e4d1cbfb4f
Add HB_SUBSET_BUILTIN
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/865
2018-03-26 14:09:29 -07:00
Garret Rieger
7251181b56
[subset] Fix infinite loop in there are more then 32 tables.
2018-03-20 19:47:36 -06:00
Garret Rieger
39b2f69fab
[subset] Drop the same tables by default as fontTools does.
2018-03-08 16:30:36 -08:00
Garret Rieger
dd10769993
[subset] drop all glyph names from the post table.
2018-03-07 11:36:54 -08:00
Garret Rieger
91867cda6a
[subset] cleanup.
2018-03-07 10:17:06 -08:00
Garret Rieger
0e8f9430c8
[subset] Skip subsetting vhea.
2018-03-07 10:03:52 -08:00
Garret Rieger
64cf53d619
[subset] Subset vmtx if present.
2018-03-07 10:03:52 -08:00
rsheeter
4a1d51ef15
Merge pull request #818 from googlefonts/drophints
...
[subset] Drop hints
2018-02-26 20:23:41 -08:00
Behdad Esfahbod
df1c7d5b60
Minor
2018-02-25 19:06:25 -08:00
Rod Sheeter
d78393b554
Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into drophints
2018-02-23 17:53:26 -08:00
Behdad Esfahbod
dc5c7927e7
[subset] Caclculate head table checksum adjustment
...
Test still fails, because we do not serialize tables in the same
order that fonttools subsetter does.
2018-02-23 16:59:53 -08:00
Garret Rieger
66b0a39079
[subset] Fix memory leak in hb-subset.
2018-02-23 15:41:52 -08:00
Garret Rieger
5a36b55fba
[subset] Fix memory leak in subset face destroy.
2018-02-23 15:30:14 -08:00
Rod Sheeter
9bd6d25254
[subset] clone trim logic from fonttools glyf handling
2018-02-23 13:05:58 -08:00
Garret Rieger
ec302ad5bd
[subset] Fail subset if a table fails to sanitize.
2018-02-22 15:42:39 -08:00
Garret Rieger
aa4aa2353c
[subset] Enable hdmx subsetting.
2018-02-22 15:42:39 -08:00
Garret Rieger
fe42862ab3
[subset] Sketch out a basic hb-ot-hdmx.hh.
2018-02-22 15:42:39 -08:00
Rod Sheeter
2d0265242b
[subset] keep the result of _subset
2018-02-21 17:04:24 -08:00
Rod Sheeter
74e0c13a4a
[subset] drop hint tables if so flagged. Still need to dump glyf instructions.
2018-02-21 11:19:18 -08:00
Rod Sheeter
7ecca8c0a8
[subset] keep the result of _subset
2018-02-21 09:42:46 -08:00
Garret Rieger
e3e0ac9823
[subset] Move glyf subsetting code into hb-ot-glyf-table.hh
2018-02-20 14:07:40 -08:00
Behdad Esfahbod
0bff6991de
Ugh. Really fix build.
2018-02-19 11:51:25 -08:00
Garret Rieger
e330ef3711
[subset] Restore hb_face_data_destroy to be internal.
2018-02-14 15:57:18 -08:00
Rod Sheeter
3ed70e5e64
[subset] return bool not hb_bool_t from table::subset
2018-02-14 15:24:49 -08:00
Rod Sheeter
d463e9f6b5
[subset] Give Behdad credit again
2018-02-14 15:04:15 -08:00
Rod Sheeter
fa87770372
[subset] First pass at hmtx
2018-02-14 14:53:10 -08:00
Garret Rieger
d008b62887
Merge remote-tracking branch 'upstream/master' into fixed
2018-02-14 10:38:52 -08:00
Garret Rieger
89f17e3965
[subset] capitalize dsig.
2018-02-14 10:19:50 -08:00
Garret Rieger
df6d780355
[subset] Extract maxp subsetting into hb-ot-maxp-table.
2018-02-14 10:19:50 -08:00
Garret Rieger
24904383df
[subset] Correct usFirstCharIndex and usLastCharIndex in OS2 table when subsetting.
2018-02-14 10:19:50 -08:00
Behdad Esfahbod
d5b33f2fe1
[subset] hb_subset_input_t changes
2018-02-13 13:55:10 -08:00
Behdad Esfahbod
3d66f441cc
[subset] Remove unreachable code
...
sanitizer.sanitize never return nullptr.
2018-02-12 18:43:42 -08:00
Rod Sheeter
1330edc4fe
Use functions to get new gids. Avoid 0; fonttools drops it from cmap.
2018-02-12 14:29:23 -08:00
Rod Sheeter
692f86e569
drop GDEF, GPOS, GSUB, and dsig
2018-02-12 11:30:57 -08:00
Garret Rieger
83e1ef9215
[subset] Set the new number of glyphs in maxp.
2018-02-12 11:22:50 -08:00
Garret Rieger
5df080bf15
Destroy the subset plan at the end of subsetting.
2018-02-12 10:15:59 -08:00
Rod Sheeter
ebd31d376d
subset for real
2018-02-12 10:10:08 -08:00
Ebrahim Byagowi
203b647530
Favor use of static instead HB_INTERNAL
2018-02-10 15:44:09 -06:00
Behdad Esfahbod
43314ff4c0
More fixes
...
test-subset-glyf still failing. No idea why :(
2018-02-10 15:40:03 -06:00
Behdad Esfahbod
a981d798ea
Fix more build issues
...
Hopefully most bots come back with this...
2018-02-10 15:19:27 -06:00
Ebrahim Byagowi
6c4ca6135a
Hide more symbols of hb-subset ( #771 )
2018-02-11 00:42:06 +03:30
Behdad Esfahbod
bfa871634c
Minor
2018-02-10 14:06:53 -06:00
Ebrahim Byagowi
844f48ea9a
Fix symbol exporting and libstdc++ linkage of hb-subset ( #769 )
2018-02-10 23:13:12 +03:30
Rod Sheeter
9275bd03ea
First pass at building a cmap
2018-02-09 17:40:52 -08:00
Garret Rieger
d2170d1478
Check for failures from add table.
2018-02-09 17:27:23 -08:00
Garret Rieger
86aa4b3ba7
Return empty face on hb_subset failure instead of null. Plus some minor cleanups for _add_head_and_set_loca_version
2018-02-09 13:54:43 -08:00
Garret Rieger
1582eabee6
Update head table with loca format selected by glyf+loca subsetting.
2018-02-09 12:52:08 -08:00
Garret Rieger
335bbaa66f
Remove uneeded code in hb-subset.
2018-02-09 10:55:15 -08:00
Rod Sheeter
59c658c8d5
capture codepoints sorted so we can use them for cmap later. one day we will have a map
2018-02-08 19:22:47 -08:00
Garret Rieger
aac7d96212
Apply per table subsetting while building the new face in hb_subset.
2018-02-08 18:18:16 -08:00
Behdad Esfahbod
9682ef135f
Minor fixups
2018-02-08 17:35:57 -06:00
Garret Rieger
f9c665fed1
Update interface to hb-subset-glyf to subset glyf and loca.
2018-02-08 17:31:11 -06:00
Rod Sheeter
13193a9b97
move to the hb_face_t dest pattern
2018-02-08 17:31:11 -06:00
Rod Sheeter
0859a00669
sketch a subset<T> and call it for cmap. Add subset to cmap, albeit not working even for the msot basic case just yet
2018-02-08 17:31:11 -06:00
Behdad Esfahbod
39b86695cf
[subset] Fix thinko
2018-02-07 21:37:03 -06:00
Behdad Esfahbod
c479a59988
[subset] Assemble font
2018-02-07 21:26:04 -06:00
Behdad Esfahbod
577becaf7b
[subset] Fixup
2018-02-07 17:38:40 -06:00
Behdad Esfahbod
7fd0b61dee
[subset] Create new face and copy all tables to it
...
test-subset fails now because subset-face does not know how to compile itself.
2018-02-07 17:28:43 -06:00
Behdad Esfahbod
b87cbe2bec
Try fixing build for platforms that have no visibility attributes
2018-02-07 14:11:26 -05:00
Behdad Esfahbod
6804b61d2e
[subset] Add hb_subset_face
...
It's a hb_face_t that has add_table() and in the future knows how to
compile itself into a font blob.
2018-02-07 13:47:35 -05:00
Behdad Esfahbod
af02812fc5
[subset] Change hb_subset API to remove hb_subset_face_t
2018-02-07 13:07:46 -05:00
Behdad Esfahbod
2da0d87e76
Remove NullPool visibility hack
...
We keep a separate private NullPool in libharfbuzz-subset.so
This can fire back later since now there are two separate null objects,
and comparisons to the null pool can be confused. Something to deal
with when it comes up. Ouch!
2018-02-07 12:44:35 -05:00
Rod Sheeter
91428713bd
Remove \ns leftover from fprintf
2018-02-07 12:41:21 -05:00
Rod Sheeter
eb485bb9e9
Horrid hack to assign new gids. Use DEBUG_MSG over fprintf
2018-02-07 12:41:21 -05:00
Garret Rieger
53aa0e9542
Add an instance of glyf::accelerator_t to hb-subset-glyf.
2018-02-07 12:41:21 -05:00
Rod Sheeter
d0ce3c66e2
Resolve codepoints:glyph ids. Does not compile; undefined reference to OT::_hb_NullPool
2018-02-07 12:41:21 -05:00
Garret Rieger
6a45e5df24
Add skeleton of hb-subset-glyf, call if from hb_subset(...)
2018-02-07 12:41:21 -05:00
Garret Rieger
31ec3c2ec4
Create a subset plan in hb_subset.
2018-02-07 12:41:21 -05:00
Garret Rieger
af46a4da5a
Move definition of hb_subset_input into hb-subset-private.hh.
2018-02-07 12:41:21 -05:00
Garret Rieger
7481f0ce21
Add codepoints to subset input.
2018-02-07 12:41:21 -05:00
Garret Rieger
8c3a672737
Get test-subset to pass.
2018-02-04 12:57:34 -08:00
Garret Rieger
74d39ed263
Attach add a hb_face_t to hb_subset_face_t.
2018-02-04 12:57:34 -08:00
Garret Rieger
a2965f2ea5
Add a basic implementation of hb-subset to enable compilation of test-subset.
2018-02-04 12:57:33 -08:00
Rod Sheeter
9ccb8366f6
Start to sketch APIs for subsetting
2018-02-04 12:57:33 -08:00