Behdad Esfahbod
1c6b369324
[ot] Rename hb_ot_layout_t to hb_ot_face_data_t
2018-08-23 11:30:21 -07:00
Behdad Esfahbod
b912fbea17
Remove most uses of direct comparison to Null objects
2018-08-06 06:38:59 -07:00
Behdad Esfahbod
74b4df2cde
[ot] Move GDEF into tables_t
2018-08-03 16:58:05 -07:00
Behdad Esfahbod
0271c7ab3b
[ot] Move GSUB/GPOS into tables_t
2018-08-03 16:45:57 -07:00
Behdad Esfahbod
f73d2775cf
[ot] More shuffling
...
Misc. table loading now properly automated.
2018-08-03 16:34:25 -07:00
Behdad Esfahbod
52fbd23d86
[ot] Minor
2018-08-03 16:22:16 -07:00
Behdad Esfahbod
6a0a298aab
[ot] Move code around
2018-08-02 23:13:19 -07:00
Behdad Esfahbod
5e718a751e
[ot] Use switch for checking for blacklisted GDEF tables
...
Faster / more compact code.
2018-08-02 23:04:42 -07:00
Behdad Esfahbod
b5cdf5280d
[ot] In GDEF blacklisting logic, remove the glyph index check for Times
...
Just blacklist based on table sizes like we do for other fonts.
2018-08-02 22:56:42 -07:00
Behdad Esfahbod
ff7826e90b
Reduce storage by sharing face amongst lazy_loaders
2018-08-02 01:29:05 -07:00
Behdad Esfahbod
ed7b2e58fc
Remove OT namespace from hb-machinery-private.hh
2018-08-02 00:08:08 -07:00
Behdad Esfahbod
44d1fb37ef
1.8.5
2018-08-01 14:51:51 -07:00
Ebrahim Byagowi
1a7fed6318
Revert "Add a new API, hb_ot_layout_get_feature_name_ids ( #976 )" ( #1121 )
...
This reverts commit 0c1b287b72
.
2018-08-01 12:15:44 +04:30
Garret Rieger
89733755a4
[subset] use add_array to populate feature_indexes.
...
This is much faster then calling a bunch of individual add()'s.
2018-07-31 18:26:09 -07:00
Garret Rieger
7d92bef9c5
[subset] collect features first, then use those to collect lookups.
2018-07-31 18:26:09 -07:00
Garret Rieger
5edf454aa6
[subset] During lookup collection remember the features we've already processed.
2018-07-27 17:29:00 -07:00
Garret Rieger
85646fdadb
[subset] Limit the iterations of the closure algorithm.
...
Prevents O(n^2) run times.
2018-07-23 16:01:57 -07:00
Behdad Esfahbod
9583e0077d
Port more off of Sanitizer<>
2018-07-22 22:43:25 -07:00
Ebrahim Byagowi
0c1b287b72
Add a new API, hb_ot_layout_get_feature_name_ids ( #976 )
...
This new API returns cvXX and ssXX related NameId, things like
featUiLabelNameId, featUiTooltipTextNameId, sampleTextNameId, ... of cvXX
and UINameId of ssXX, in a unified way.
However HarfBuzz currently doesn't expose an API for retrieving the actual
information associated with NameId from the `name` table and that should be
done separately.
2018-07-21 21:14:48 +04:30
Behdad Esfahbod
db5d430eff
[aat] Update for blob changes
...
Also, uncomment code again, just "if (0)" it out, so it doesn't get stale again.
2018-07-17 18:14:45 +02:00
Behdad Esfahbod
f56cd9df10
Style
2018-06-12 01:17:00 -04:00
Garret Rieger
feb23892a3
[subset] Use gsub closure if ot layout is not being dropped.
2018-06-08 12:09:34 -06:00
Garret Rieger
57badadb76
[subset] add a new closure call to hb-ot-layout that can compute the closure over multiple lookups.
2018-06-06 17:50:12 -06:00
Garret Rieger
45186b9b8c
[subset] Add memoization of GSUB lookup closures.
2018-06-06 16:53:50 -06:00
Behdad Esfahbod
f7515769fd
[vector] Use Crap pool in push() as well
2018-06-01 17:48:37 -07:00
Behdad Esfahbod
7185b273b3
Rename in_error to !successful
...
Towards possibly using Null pool for some nil objects.
2018-05-31 20:03:34 -07: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
2a46a020fd
Minor
2018-05-08 02:53:03 -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
203dc44ebc
[ot-layout] Remove unused members
...
We should hang those off somewhere else. For now, the unused ones can go.
2018-05-07 13:38:19 -07:00
Behdad Esfahbod
37b95612d4
Remove hb_auto_array_t
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1017
2018-05-01 19:09:00 -04:00
Ebrahim Byagowi
218fa7166e
[ot-color] SVG table implementation ( #874 )
2018-03-10 11:13:52 +03:30
Ebrahim Byagowi
4c63c82383
[ot-color] sbix table implementation ( #870 )
2018-03-10 11:07:56 +03:30
Ebrahim Byagowi
c446c23f0f
[ot-color] Move the related tables to hb-ot-color-* ( #858 )
2018-03-03 22:43:23 +03:30
Ebrahim Byagowi
f671f7f0a8
[colr] Implement
2018-02-28 13:19:40 +03:30
Ebrahim Byagowi
5b9c234043
[CPAL] Refactor and address the reviews
2018-02-28 11:25:29 +03:30
Ebrahim Byagowi
101850f9e6
Merge with master
2018-02-27 20:17:25 +03:30
Ebrahim Byagowi
f110c0c886
Merge pull request #838 from harfbuzz/BASE
...
BASE table
2018-02-27 11:41:12 +03:30
Ebrahim Byagowi
0ad8c663e0
Remove public API of the branch
2018-02-27 11:02:33 +03:30
Ebrahim Byagowi
ae14dd0fb0
[aat] Implement ankr
2018-02-25 17:01:39 -08:00
Behdad Esfahbod
551fa2d200
[BASE] Minor
2018-02-25 16:32:17 -08:00
Behdad Esfahbod
05699fd996
Merge remote-tracking branch 'eroux/add-base'
2018-02-24 12:03:26 -08:00
Ebrahim Byagowi
1ab16f4556
[aat] Implement trak logic ( #816 )
2018-02-24 12:49:42 +03:30
Behdad Esfahbod
cd32177a32
Try at fixing multiple-definition of NullPool
...
If we don't have visibility, make NullPool static.
2018-02-11 19:36:00 -06:00
Behdad Esfahbod
cdab20df1e
Minor
2018-02-10 15:45:17 -06:00
Bruce Mitchener
148ca61075
[ot-layout] Fix nullptr dereference.
...
If the `calloc` for `gsub_accels` or `gpos_accels` fails, then the
unlikely branch afterwards can be taken, which frees up the
`hb_ot_layout_t`, but since those fields can now be `nullptr`, then
we don't want to dereference them.
2018-01-31 08:05:25 -08:00
Behdad Esfahbod
fd03449094
Rename hb_apply_context_t to hb_ot_apply_context_t
2018-01-19 16:40:13 -08:00
Behdad Esfahbod
470fe5b603
[aat] Implement Lookup table
...
Untested, but compiles.
2018-01-10 02:50:49 +01:00
Behdad Esfahbod
c71b55a223
[aat] Start implementing Apple AAT morx table
2018-01-10 02:50:49 +01:00
Behdad Esfahbod
be9e307a88
[ot] Ensure layout in hb_ot_layout_table_get_lookup_count()
2017-12-01 12:37:05 -08:00
Behdad Esfahbod
ec86cc5e55
Fix Windows build
...
(And prevent it from happening in the future.)
2017-10-30 14:11:59 -06:00
Behdad Esfahbod
af3f72f9eb
Correctly mark NullPool const
...
Saves some more code size as well!
2017-10-27 15:14:44 -06:00
Behdad Esfahbod
3205de7906
Make the NullPool HB_INTERNAL shared
...
Saves 2k of .bss section.
2017-10-27 15:01:40 -06:00
Behdad Esfahbod
dbdbfe3d7b
Use nullptr instead of NULL
2017-10-15 12:11:08 +02:00
Behdad Esfahbod
c3448e8d21
Use static_assert instead of custom ASSERT_STATIC
2017-10-15 12:02:00 +02:00
Behdad Esfahbod
cdf1fd0627
[indic] Add infrastructure to disable ZWNJ-skipping in context-matching
...
Not used yet.
2017-07-14 12:43:34 +01:00
Ebrahim Byagowi
3b0e47ca00
Fix arm-none-eabi build ( fixes #451 ) ( #496 )
2017-06-19 14:47:09 +04:30
jfkthame
c04c1fe86e
Blacklist GDEF table in additional Tahoma versions. ( #459 )
...
There are more broken versions of Tahoma out there on various Windows releases,
so we need to add them to our blacklist to avoid broken rendering.
See https://bugzilla.mozilla.org/show_bug.cgi?id=1279925 for details.
2017-04-11 14:29:13 -07:00
Behdad Esfahbod
edcf6344bc
Blacklist more versions of Padauk
...
Patch from Phil Race.
2017-03-24 10:24:52 -07:00
Elie Roux
3ebcd5a381
first working version!
2017-03-05 16:26:01 +01:00
Dominik Röttsches
a657f23ca3
Blacklist another instance of Padauk ( #419 )
...
In https://crbug.com/681813 another instance of Padauk was identified
triggering collapsed glyphs. Blacklist this version by patching
hb-ot-layout.cc to print out gdef, gsub, and gpos table length, then
adding those to the list of blacklisted versions.
2017-02-20 13:52:07 -06:00
Elie Roux
f131f00b17
compile, move into hb-ot-layout.cc
2017-02-19 10:12:22 +01:00
Behdad Esfahbod
466b3e58bd
Shuffle things around a bit
2017-02-03 16:57:15 -08:00
jfkthame
4ec19319ab
Add Win10 Anniversary Update version of Tahoma to GDEF blacklist. ( #412 )
2017-02-02 10:48:23 -08:00
jfkthame
72c754873c
Add Win7 version of himalaya.ttf to the GDEF table blacklist. ( #407 )
2017-01-26 14:35:41 -08:00
Behdad Esfahbod
113393efec
Remove a few unused includes
2017-01-21 15:12:03 -08:00
Behdad Esfahbod
55d42fd667
Start adding hb-ot-var.h and implementation
...
Supports enumerating variation axes, normalizing values, etc.
2017-01-19 19:35:48 -08:00
Behdad Esfahbod
1f810daf16
Port math table to hb_lazy_table_loader_t
2017-01-09 23:50:56 -08:00
Frédéric Wang
ae00af4a47
Move math-specific code from hb-ot-layout to hb-ot-math #235 ( #384 )
2017-01-02 23:55:09 -05:00
Behdad Esfahbod
ec87ba9ba3
[GX] Add hb_ot_layout_feature_with_variations_get_lookups()
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
30c42b644e
[GX] Add hb_ot_layout_table_find_feature_variations()
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
d1c62370a0
Aim math API for 1.3.3 instead of 1.4.0
2016-10-04 14:47:12 -07:00
Khaled Hosny
7adbc5dd62
Fix building math docs ( #335 )
2016-09-30 04:01:24 -07:00
Behdad Esfahbod
c3e21a6620
[MATH] Fix more docs
2016-09-27 16:51:38 +02:00
Behdad Esfahbod
46cc4a3a2a
[MATH] Rename hb_math_*_t types to hb_ot_math_*_t
...
With this, I believe MATH table API is not ready to be merged.
2016-09-27 16:44:22 +02:00
Frédéric Wang
0762b35474
Document API for MathVariants ( #330 )
2016-09-27 15:28:35 +02:00
Behdad Esfahbod
86106c7528
[MATH] Rename all API to hb_ot_math_*
2016-09-26 22:14:29 +02:00
Behdad Esfahbod
559eb56447
[MATH] Wire up get_glyph_assembly()
2016-09-26 21:46:05 +02:00
Behdad Esfahbod
353f455af7
[MATH] Wire up get_glyph_variants()
2016-09-26 21:25:00 +02:00
Behdad Esfahbod
7fe0e28c22
[MATH] Start fleshing out glyph variant API
2016-09-26 17:51:47 +01:00
Frédéric Wang
51da7a1cd6
MATH table: Add API to access math variants.
2016-09-26 15:18:16 +01:00
Behdad Esfahbod
94f5df5626
[MATH] Clean up get_kerning()
2016-09-26 13:31:47 +01:00
Behdad Esfahbod
17ff30e9af
[MATH] Clean up get_top_accent_attachment()
...
Note, the function now returns "half of horizontal advance width"
if top accent attachment for glyph is not explicitly defined.
This is what the spec requires. Updated tests.
2016-09-26 12:21:27 +01:00
Behdad Esfahbod
8bcf517fe5
[MATH] Clean up get_italics_correction()
2016-09-26 12:13:14 +01:00
Behdad Esfahbod
06003f71ba
[MATH] Clean up a bit more
2016-09-26 12:07:29 +01:00
Behdad Esfahbod
54c0cc38fb
[MATH] Clean up get_math_constant implementation
2016-09-26 11:56:40 +01:00
Behdad Esfahbod
8a8cfad9a0
[MATH] Cleanup previous commit a bit
2016-09-26 11:51:07 +01:00
Frédéric Wang
d7182d1296
MATH Table: Add API to access glyph info.
2016-09-26 11:32:25 +01:00
Frédéric Wang
319ff59161
MATH Table: Add API to access math contants.
2016-09-26 10:49:09 +01:00
Behdad Esfahbod
4d3892e9b0
[MATH] Fixups for previous commit
2016-09-26 10:45:58 +01:00
Frédéric Wang
5fbcb992bd
MATH Table: Add API to check availability of math data.
2016-09-26 10:27:33 +01:00
Dominik Röttsches
67e9fdf427
Blacklist Padauk 2.80 and 3.00 ( #311 )
...
According to comments in issue #305 broken GDEF tables lead
to incorrect rendering of Latin characters. Blacklisting
this font.
2016-09-05 01:27:25 -07:00
jfkthame
f3f6c1ccbf
Blacklist GDEF tables of more fonts
...
This is based on bug reports that have been filed against Firefox since it
updated to a version of harfbuzz that uses zeroing by GDEF rather than by
Unicode. I'm sure there are a bunch more font versions that should also be
included; these are just the ones I have on hand and have confirmed as having
bad GDEF data.
Given how the list here is growing, I think we should reconsider the approach,
and perhaps revert to zeroing by Unicode instead.
Fixes https://github.com/behdad/harfbuzz/issues/264
Fixes https://github.com/behdad/harfbuzz/pull/266
2016-07-21 01:15:12 -07:00
Sascha Brawer
d34d3ac985
Support CPAL table
2016-06-19 13:17:57 +02:00
Behdad Esfahbod
29393884b9
Annotate blacklisted fonts with their sha1sum
2016-04-26 10:35:47 -07:00
Behdad Esfahbod
1c625dff22
Minor
2016-04-09 12:53:23 -07:00
Behdad Esfahbod
4f3d59a187
Blacklist another set of timesi.ttf and timesbi.ttf
2016-04-08 13:41:20 -07:00
Behdad Esfahbod
94dd0bb7e7
Add blacklist signature for Times New Roman (Bold) Italic on OS X
2016-02-25 11:31:03 +09:00
Behdad Esfahbod
e23cf902e9
Blacklist GDEF table of timesi.ttf and timesbi.ttf on Win 7
...
See discussion:
https://lists.freedesktop.org/archives/harfbuzz/2016-February/005489.html
2016-02-25 11:11:15 +09:00
Behdad Esfahbod
7d8d58ac81
[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.
2016-02-11 16:34:28 +07:00
Behdad Esfahbod
3e704521f6
[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!
2016-01-11 17:38:41 +00:00
Khaled Hosny
d7bf9d05c5
[docs] Fix comment syntax
...
To lower the number of gtk-doc warnings.
2015-12-30 17:58:53 +04:00
Behdad Esfahbod
0475ef2f97
[buffer] Add debugging, aka, message, API
...
Currently just announces lookup applications. Message-API *will* change.
hb-shape / hb-view are updated to print-out messages to stder if --debug
is specified.
2015-12-18 19:29:06 +00:00
Behdad Esfahbod
9ea0aa43ac
Don't deserialize positions if buffer has no positions
2015-12-18 17:30:57 +00:00
Behdad Esfahbod
35d18585fc
Fix a few docs blocks
2015-11-26 19:30:37 -05:00
Behdad Esfahbod
ea512f7108
Use C-style casts instead of compare to 0, to convert hb_bool_t to bool
2015-11-26 19:22:22 -05:00
Behdad Esfahbod
766963adba
Merge pull request #114 from ThePhD/vc++-fixes
...
Fix all VC++ warnings and errors
2015-11-24 15:38:43 -06:00
Behdad Esfahbod
abadc1717d
Try to better handle OOM situations
...
Fixes assert fail in https://github.com/behdad/harfbuzz/issues/161
with libharfbuzz-fuzzing.
2015-11-18 17:52:08 -08:00
Behdad Esfahbod
5337db29af
Revert "Don't process lookups if buffer is in error"
...
This reverts commit f92bd86cc8
.
We don't want to be like cairo, where as soon as there's an error,
nothing works anymore. So, lets process lookups as long as there's
no new memory needed. That's also a model that hides fewer bugs.
2015-11-06 16:18:09 -08:00
Behdad Esfahbod
f92bd86cc8
Don't process lookups if buffer is in error
2015-11-05 23:52:29 -08:00
Behdad Esfahbod
77a1a2bc18
Add hb_dispatch_context_t
2015-10-09 12:20:58 -04:00
Behdad Esfahbod
b8811429b6
Fix Since tags
...
Fixes https://github.com/behdad/harfbuzz/issues/103
2015-09-03 15:53:22 +04:30
Behdad Esfahbod
902e74a098
Commented-out code to print buffer before each lookup
...
To be turned into a useful HB_DEBUG_SHAPE infrastructure...
2015-08-18 18:55:03 +01:00
Behdad Esfahbod
2c8b3b2e53
[debug] Print lookup index in debug-apply output
2015-08-18 14:36:43 +01:00
ThePhD
5c99cf93d6
Merge branch 'master' into vc++-fixes
2015-08-14 01:02:00 -04:00
Behdad Esfahbod
0f98fe88f4
[ot] Search globally for 'vert' feature if not found in specified script/lang
...
Fixes https://github.com/behdad/harfbuzz/issues/63
2015-07-23 11:52:11 +01:00
Behdad Esfahbod
d78463c801
Minor debug output fix
2015-07-23 10:11:35 +01:00
ThePhD
8e545d5961
Fix all VC++ warnings and errors in the current commit's builds.
2015-06-22 22:29:04 -04:00
Sascha Brawer
01c3a88543
Fix "Since:" tags
...
Based on data from http://upstream-tracker.org/versions/harfbuzz.html
Resolves #103
2015-06-01 13:25:27 +02:00
Behdad Esfahbod
f47cf1f12d
Minor
2015-02-25 15:43:33 -08:00
Behdad Esfahbod
640b66c634
[layout] If lookup has only one subtable, move the forward loop down to subtable
...
I was hoping to see a nice speedup, but it resulted in a very minor one.
2015-02-25 15:43:33 -08:00
Behdad Esfahbod
e2f50f2a7e
[layout] Add apply_forward / apply_backward
2015-02-25 15:43:32 -08:00
Behdad Esfahbod
1d4a328472
[layout] Remove unneeded return value from apply()
2015-02-25 15:43:32 -08:00
Behdad Esfahbod
bd047d3b7f
[layout] Minor
2015-02-25 15:43:31 -08:00
Behdad Esfahbod
b9d3f60520
[layout] Minor
2015-02-25 15:43:31 -08:00
Behdad Esfahbod
241eac9559
Hide internals of lookup accelerators
2015-02-25 15:43:25 -08:00
Behdad Esfahbod
395b35903e
Avoid accessing layout tables at face destruction
...
"Fixes" https://bugs.freedesktop.org/show_bug.cgi?id=86300
Based on discussion someone else who had a similar issue, most probably
the user is releasing FT_Face before destructing hb_face_t / hb_font_t.
While that's a client bug, and while we can (and should) use FreeType
refcounting to help avoid that, it happens that we were accessing
the table when we didn't really have to. Avoid that.
2014-12-28 16:03:26 -08:00
Behdad Esfahbod
911ca38645
Add back API removed recently
...
Add hb_ot_layout_language_get_required_feature_index() again, which
is used in Pango. This was removed in
da13293798
in favor of
hb_ot_layout_language_get_required_feature().
API changes:
- Added hb_ot_layout_language_get_required_feature_index back.
2014-06-24 10:20:36 -06:00
Jonathan Kew
da13293798
Rework handling of requiredFeature to solve problem with rlig in arial.ttf from winxp
...
https://bugzilla.mozilla.org/show_bug.cgi?id=986802
Fixes https://github.com/behdad/harfbuzz/pull/39
API Change:
-hb_ot_layout_language_get_required_feature_index
+hb_ot_layout_language_get_required_feature
New API takes an extra pointer argument. Pass NULL in to get
behavior of previous API.
Reworked by behdad
2014-06-19 16:33:48 -04:00
Behdad Esfahbod
6ffc007b61
[otlayout] Optimize inplace
...
See thread started by Jonathan with subject "an optimization for complex
fonts".
2013-10-28 19:26:02 +01:00
Behdad Esfahbod
ac8cd51191
Refactor
2013-10-18 19:33:09 +02:00
Behdad Esfahbod
49901862e3
[otlayout] Guard against use of ReverseChain through Context
2013-10-17 19:48:51 +02:00
Behdad Esfahbod
4e6e53db5d
[otlayout] "Minor"
2013-10-14 13:06:36 +02:00
Behdad Esfahbod
27674b4bb3
[OTLayout] Protect against out-of-range lookup indices
...
Filter them out when compiling map.
2013-10-03 14:54:50 -04:00
Behdad Esfahbod
6c48f20eea
[otlayout] Add structs for JSTF table
2013-09-09 15:43:10 -04:00
Behdad Esfahbod
5f85c80a07
[OT] Collect requiredFeature only if features are not provided
...
As per Werner's report on the list.
2013-06-26 20:14:18 -04:00
Bradley Grainger
89312b7417
Destroy lookups before blobs.
...
'layout->gsub' may depend on data owned by 'layout->gsub_blob', so it must
be deinitialized before the blob is destroyed.
2013-06-21 15:02:18 -07:00
Behdad Esfahbod
9d9e72e94e
[OTLayout] Use is_inplace() when flipping buffers
2013-05-04 16:04:04 -04:00
Behdad Esfahbod
45f3d980c9
[OTLayout] Merge / templateize apply_string()
2013-05-04 16:04:04 -04:00
Behdad Esfahbod
780cd930a9
[OTLayout] Minor
2013-05-04 16:04:04 -04:00
Behdad Esfahbod
bac1dd6a0f
[OTLayout] Refactor a bit more
2013-05-04 16:04:04 -04:00
Behdad Esfahbod
d2c96819de
Move code around
2013-05-04 16:04:04 -04:00
Behdad Esfahbod
45fd9424c7
[OTLayout] Add hb_ot_layout_lookup_accelerator_t
2013-05-04 16:04:03 -04:00
Behdad Esfahbod
893991fc9d
Initialize set digests
...
We were not initializing the digests properly and as a result they were
being initialized to zero, making digest1 to never do any useful work.
Speeds up Amiri shaping significantly.
2013-04-16 21:57:35 -04:00
Behdad Esfahbod
a8cf7b43fa
[Indic] Futher adjust ZWJ handling in Indic-like shapers
...
After the Ngapi hackfest work, we were assuming that fonts
won't use presentation features to choose specific forms
(eg. conjuncts). As such, we were using auto-joiner behavior
for such features. It proved to be troublesome as many fonts
used presentation forms ('pres') for example to form conjuncts,
which need to be disabled when a ZWJ is inserted.
Two examples:
U+0D2F,U+200D,U+0D4D,U+0D2F with kartika.ttf
U+0995,U+09CD,U+200D,U+09B7 with vrinda.ttf
What we do now is to never do magic to ZWJ during GSUB's main input
match for Indic-style shapers. Note that backtrack/lookahead are still
matched liberally, as is GPOS. This seems to be an acceptable
compromise.
As to the bug that initially started this work, that one needs to
be fixed differently:
Bug 58714 - Kannada u+0cb0 u+200d u+0ccd u+0c95 u+0cbe does not
provide same results as Windows8
https://bugs.freedesktop.org/show_bug.cgi?id=58714
New numbers:
BENGALI: 353689 out of 354188 tests passed. 499 failed (0.140886%)
DEVANAGARI: 707305 out of 707394 tests passed. 89 failed (0.0125814%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60706 out of 60747 tests passed. 41 failed (0.067493%)
KANNADA: 951030 out of 951913 tests passed. 883 failed (0.0927606%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1048102 out of 1048334 tests passed. 232 failed (0.0221304%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
2013-03-19 06:22:06 -04:00