Nikolay Sivov
|
384067bda6
|
dwrite: Use correct glyph array offset for alternate substitution table output.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-05 16:54:35 +02:00 |
Nikolay Sivov
|
e89aa70555
|
dwrite: Fix global feature mask to match its shift.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-05 16:54:35 +02:00 |
Nikolay Sivov
|
4f7f3b7b8b
|
dwrite: Enable lookups from non-global features too.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-02 12:37:28 +02:00 |
Nikolay Sivov
|
15baea930a
|
dwrite: Include required feature when collecting lookups.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-02 12:37:28 +02:00 |
Nikolay Sivov
|
aa222d7df8
|
dwrite: Use lookup fitering for context matching.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-02 12:37:28 +02:00 |
Nikolay Sivov
|
f2db3b58d6
|
dwrite: Implement reverse chain contextual substitution (GSUB lookup 8).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-02 12:37:28 +02:00 |
Nikolay Sivov
|
3e59649c9e
|
dwrite: Add main loop variant for reverse substitution.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-01 22:10:28 +02:00 |
Nikolay Sivov
|
db6c4156af
|
dwrite: Fix offsets when stepping through chain rule fields.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-01 22:10:28 +02:00 |
Nikolay Sivov
|
e7324209e0
|
dwrite: Implement contextual subsitution (GSUB lookup 5).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-01 22:10:28 +02:00 |
Nikolay Sivov
|
d5cca52750
|
dwrite: Fix lookup collection when no suitable script was found.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-01 22:10:28 +02:00 |
Nikolay Sivov
|
d1ae4a5647
|
dwrite: Implement chaining contextual substitution of format 2.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-29 20:05:30 +02:00 |
Nikolay Sivov
|
7e798dae37
|
dwrite: Implement chaining contextual substitution of format 1.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-29 20:05:30 +02:00 |
Nikolay Sivov
|
a1d1647131
|
dwrite: Use iterator matching for chain substitution.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-29 20:05:30 +02:00 |
Nikolay Sivov
|
4d23336882
|
dwrite: Add matching callback support for iterators.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-29 20:05:30 +02:00 |
Nikolay Sivov
|
5c9129723c
|
dwrite: Implement mark glyph filtering.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-29 20:05:30 +02:00 |
Nikolay Sivov
|
2e79405eec
|
dwrite: Simplify glyph properties helpers by using current glyph buffer.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-29 20:05:30 +02:00 |
Nikolay Sivov
|
9479f87b8a
|
dwrite: Add stub handler for ligature substitution.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-28 20:18:32 +02:00 |
Nikolay Sivov
|
2e4d71c721
|
dwrite: Update glyph component count on multiple substitution.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-28 20:18:32 +02:00 |
Nikolay Sivov
|
9f31bf0e1c
|
dwrite: Implement multiple substitution (GSUB lookup 2).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-28 20:18:32 +02:00 |
Nikolay Sivov
|
684dd31cc2
|
dwrite: Use GPOS handlers for subtables, not whole lookups.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-28 20:18:31 +02:00 |
Nikolay Sivov
|
cd8cdc7893
|
dwrite: Mark some of default ignorables as ZWS.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-27 10:22:56 +02:00 |
Nikolay Sivov
|
47272be6aa
|
dwrite: Use cluster map to apply use feature ranges.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-27 10:20:58 +02:00 |
Nikolay Sivov
|
d5058fb304
|
dwrite: Implement alternate substitution (GSUB lookup 3).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-27 10:20:54 +02:00 |
Nikolay Sivov
|
3abcf68af9
|
dwrite: Handle extension substitution (GSUB lookup 7).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-27 10:20:47 +02:00 |
Nikolay Sivov
|
3cf308d1b8
|
dwrite: Reference currently used layout table in context.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-27 10:20:41 +02:00 |
Nikolay Sivov
|
c9814f9098
|
dwrite: Use global cursor to glyph array for substitutions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-26 10:41:24 +02:00 |
Nikolay Sivov
|
2b5500ce12
|
dwrite: Prefetch all lookup entry fields when collecting them.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-26 10:41:22 +02:00 |
Nikolay Sivov
|
5625a8e52d
|
dwrite: Only enable single substitution lookups for chained substitution.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-26 10:41:18 +02:00 |
Nikolay Sivov
|
e5c6a7beb3
|
dwrite: Update glyph properties on single substitution.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-26 10:41:15 +02:00 |
Nikolay Sivov
|
db3eb6fc0b
|
dwrite: Simplify single substitution helper.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-25 20:22:37 +02:00 |
Nikolay Sivov
|
7f427f258d
|
dwrite: Use prefetched glyph class to match with lookup mask.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-25 20:22:35 +02:00 |
Nikolay Sivov
|
b1f215dd78
|
dwrite: Set glyph class properties when applying GPOS.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-25 20:22:33 +02:00 |
Nikolay Sivov
|
a99e466547
|
dwrite: Set glyph class for all initial glyphs.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-25 20:22:31 +02:00 |
Nikolay Sivov
|
da55f010df
|
dwrite: Use mirrored character only if font supports it.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-22 14:32:02 +02:00 |
Nikolay Sivov
|
bb91e877b3
|
dwrite: Silence warning for name entries with platform 3/encoding 10.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-22 14:32:02 +02:00 |
Nikolay Sivov
|
8962f82210
|
dwrite: Set per-glyph feature mask.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-22 14:32:02 +02:00 |
Nikolay Sivov
|
b8625c7f03
|
dwrite: Keep track of shaping stage feature applies to.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-22 14:32:02 +02:00 |
Nikolay Sivov
|
7780d7856b
|
dwrite: Propagate feature mask to lookups collected from it.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-22 14:32:02 +02:00 |
Nikolay Sivov
|
c8f409ed93
|
dwrite: Keep user features values.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-21 20:25:50 +02:00 |
Nikolay Sivov
|
b9f580c990
|
dwrite: Enable 'vert' feature.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-21 20:25:50 +02:00 |
Nikolay Sivov
|
093d6966be
|
dwrite: Set feature indices before collecting lookups.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-21 20:25:50 +02:00 |
Gijs Vermeulen
|
23543f2005
|
dwrite: Set ret on unimplemented lookup in opentype_layout_apply_gsub_lookup.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-11 21:24:58 +02:00 |
Nikolay Sivov
|
075f5b73fe
|
dwrite: Partially implement chaining contextual substitution (GSUB lookup 6).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-04 12:39:09 +02:00 |
Nikolay Sivov
|
a6be957919
|
dwrite: Implement single substitution lookup (GSUB lookup 1).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-04 12:39:09 +02:00 |
Nikolay Sivov
|
5eb742687d
|
dwrite: Add a helper to collect gsub/gpos lookups.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-04 12:39:09 +02:00 |
Nikolay Sivov
|
bd6a500ab0
|
dwrite: Add helper functions to collect default GSUB features.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-04 12:39:09 +02:00 |
Nikolay Sivov
|
7208bc40dc
|
dwrite: Initialize GSUB offsets in shaping cache.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-04 12:39:09 +02:00 |
Nikolay Sivov
|
b8f1aed6d9
|
dwrite: Add separate structure for top level gsub/gpos offsets.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-04 12:39:09 +02:00 |
Francois Gouget
|
e24bd0b9d3
|
dwrite: Include config.h for HAVE___BUILTIN_POPCOUNT.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-04-21 21:30:48 +02:00 |
Nikolay Sivov
|
9f1dd9fc3e
|
dwrite: Fix potential strings object leak (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-02-03 12:42:08 +01:00 |