Nikolay Sivov
|
a767467d2e
|
dwrite: Get rid of cmap cache.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-09 21:23:33 +02:00 |
Nikolay Sivov
|
1cfa1c6930
|
dwrite: Remove unused field from fontface data structure.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-09 21:23:33 +02:00 |
Nikolay Sivov
|
745452ee94
|
dwrite: Do not require fontface object for HasCharacter().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-09 21:23:33 +02:00 |
Nikolay Sivov
|
fb5eec2c1e
|
dwrite: Disallow recursing to reverse chaining substitution.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-09 21:23:33 +02:00 |
Nikolay Sivov
|
3c415128f1
|
dwrite: Limit recursion level for context lookups.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-09 21:23:33 +02:00 |
Nikolay Sivov
|
8a52d3e7d9
|
dwrite: Implement contextual positional lookups.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-08 21:01:33 +02:00 |
Nikolay Sivov
|
102272a4a9
|
dwrite: Unify context lookup helpers.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-08 21:01:33 +02:00 |
Nikolay Sivov
|
b4b33e13d2
|
dwrite: Implement CheckTypographicFeature().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-08 21:01:33 +02:00 |
Nikolay Sivov
|
19e9b819f7
|
dwrite: Remove fixme from CreateFontFallback().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-08 21:01:32 +02:00 |
Nikolay Sivov
|
b60796bd73
|
dwrite: Sort feature tags returned from GetTypographicFeatures().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-06-08 21:01:32 +02:00 |
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
|
c44a0e865b
|
dwrite: Partially implement GetBaseline().
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
|
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
|
75a34d9408
|
dwrite: Add properties for recently added scripts.
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
|
d7d276c34b
|
dwrite/tests: Enable glyph class tests on Wine.
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
|
a66668c129
|
dwrite: Keep text properties zero initialized.
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
|
76b1f3fd72
|
dwrite: Use temporary buffers for GetGlyphs().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-26 10:41:20 +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
|
4490f8a274
|
dwrite: Fix array indexing when merging features.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
|
2020-05-25 20:22:29 +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 |