Commit Graph

139 Commits

Author SHA1 Message Date
Nikolay Sivov 430145e431 dwrite: Check for allocation failures of glyph buffers.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-11 18:30:50 +02:00
Nikolay Sivov fcd8508993 dwrite: Use wide-char literals.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-31 22:16:25 +02:00
Nikolay Sivov db516804cc dwrite: Build with msvcrt.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-30 17:10:03 +02:00
Nikolay Sivov 118b080a08 dwrite: Use same name for refcount field across different object structures.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-11 13:13:35 +01:00
Nikolay Sivov f18acbfef3 dwrite: Use newer analyzer interface internally.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-22 19:59:16 +01:00
Nikolay Sivov 1b10b88d32 dwrite: Always initialize output glyph count in GetGlyphs().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-16 23:01:38 +01:00
Nikolay Sivov 23638b44ed dwrite/shaping: Make sure initial glyph buffer can fit at least one glyph per WCHAR.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-10 20:05:03 +01:00
Nikolay Sivov 4914f51c09 dwrite: Change remaining traces to have consistent format.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-04 15:41:02 +01:00
Nikolay Sivov d905919cfa dwrite: Fix vtable variables types.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-01 17:10:37 +01:00
Nikolay Sivov 142c06e55e dwrite: Set script id in shaping context.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-21 20:46:13 +01:00
Alexandre Julliard 6ca76dc5e7 include: Remove some no longer used Unicode functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-02 15:38:25 +01:00
Nikolay Sivov 0a0872910b dwrite: Add missing script tags.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-17 00:05:44 +02:00
Nikolay Sivov a6c0eab6de dwrite: Set initial canBreakShapingAfter flags.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-11 15:51:18 +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 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 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 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 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 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 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 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 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 bd0abb5968 dwrite: Append enabled user features that apply to whole text.
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 7e02e2e993 dwrite: Update DWRITE_SHAPING_TEXT_PROPERTIES definition.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-06 19:02:01 +02:00
Nikolay Sivov 33ec962e27 dwrite: Enable common positional features for all scripts.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:53:02 +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 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 52a55f3e04 dwrite: Simplify LB22 rule according to Unicode 13.0 algorithm.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 09:41:26 +01:00
Nikolay Sivov c8a2ab0964 dwrite: Use IDWriteFactory7 for analyzer.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-06 22:30:23 +01:00
Nikolay Sivov cd4101dbba dwrite: Update to IDWriteFontFallback1.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-09 10:44:22 +02:00
Nikolay Sivov cd7dd5e895 dwrite: Add recent script properties.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-05 18:45:10 +02:00
Nikolay Sivov 5a33f86ec9 dwrite: Remove unused functions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-02 10:00:29 +02:00
Nikolay Sivov a782605ef5 dwrite/analyzer: Use array allocation helper for fallback builder.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 20:13:59 +02:00
Nikolay Sivov 8d2e59edaa dwrite: Use more appropriate allocation helpers.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-13 09:12:11 +01:00
Nikolay Sivov d1642df049 dwrite: Implement cursive attachment, GPOS lookup 3.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-04 15:38:19 +01:00
Nikolay Sivov 623f059b07 dwrite: Implement single adjustment, GPOS lookup 1.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-04 15:38:15 +01:00
Nikolay Sivov cb39c9853c dwrite: Implement masking with positional lookup flags.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 13:26:41 +01:00
Nikolay Sivov 3d1d9a1def dwrite: Resolve script and language to apply positional features.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 13:26:27 +01:00
Nikolay Sivov d1c7348997 dwrite: Add a helper to get shaped glyph positions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 13:26:21 +01:00
Nikolay Sivov efb1aef93f dwrite/analyzer: Preserve inter-cluster spacing when apply spacing properties.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-28 10:25:16 +01:00
Nikolay Sivov 27aef423d8 dwrite: Remove special case for vertical variants.
This should be implemented as a part of shaping pass.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-25 23:09:08 +01:00
Nikolay Sivov 95a83bc942 dwrite: Use helper to trace 4 byte tags.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-25 23:09:08 +01:00
Nikolay Sivov 17e9560e36 dwrite: Use array for script tags.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-25 23:09:08 +01:00
Nikolay Sivov 41cba1dcd5 dwrite: Update line breaking logic with Unicode 11.0.0 changes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-06 21:04:04 +01:00
Nikolay Sivov d4eeb162bb tools: Update to Unicode 11.0.0.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-03 12:01:40 +02:00
Piotr Caban 71b3ba57f7 dwrite: Fix features dumping in analyzer_dump_user_features.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Nikolay Sivov<nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-12 11:03:28 +02:00
Nikolay Sivov d31651b705 dwrite: Use ARRAY_SIZE() macro.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-21 09:24:48 +01:00
Huw Davies cd746afd0d dwrite: Use the correct array index.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-02 13:23:34 +02:00