Commit Graph

1000 Commits (625209433fa82e233a828329e9e109602f9c0ef0)

Author SHA1 Message Date
Michael Stefaniuc 6f5436f9f4 dwrite: Remove useless casts to self.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-01 09:37:28 +01: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 215ad4e99e dwrite: Store outline offset as a vector.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-08 12:11:50 +01:00
Nikolay Sivov 808152b73b dwrite: Fix positions in outline mode.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-08 12:11:48 +01:00
Nikolay Sivov cbf1207b88 dwrite: Add a stub for mark-to-ligature attachment handler.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-05 11:59:36 +01:00
Nikolay Sivov 717030df10 dwrite: Implement mark-to-mark attachment, GPOS lookup 6.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-05 11:59:29 +01:00
Nikolay Sivov e166ab8b18 dwrite: Implement mark-to-base attachment, GPOS lookup 4.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-04 15:38:22 +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 9b2ff6d2f1 dwrite: Implement pair adjustment, GPOS lookup 2.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-04 15:38:17 +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 b2d6fbe100 dwrite: Add a helper to apply positional lookup.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 13:26:37 +01:00
Nikolay Sivov b57db6f8fe dwrite: Collect and sort positional lookups.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 13:26:32 +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 594837824c dwrite/tests: Add some tests for setting glyph properties from GDEF.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-30 18:32:41 +01:00
Nikolay Sivov 2ca9aa16b2 dwrite: Validate 'VDMX' data before using it.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-29 10:20:50 +01:00
Nikolay Sivov f73ba331c1 dwrite: Validate 'sbix' data before using it.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-29 10:20:47 +01:00
Nikolay Sivov e6967c513d dwrite: Validate 'CBLC' data before using it.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-29 10:20:45 +01:00
Nikolay Sivov 1ee9685003 dwrite: Validate 'COLR' data before using it.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-29 10:20:38 +01:00
Nikolay Sivov 1c99186c88 dwrite: Validate 'CPAL' data before using it.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-28 10:25:24 +01:00
Nikolay Sivov 471611b575 dwrite: Validate 'gasp' data before accessing it.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-28 10:25:22 +01:00
Nikolay Sivov 2dcb3c7451 dwrite: Validate font data when retrieving supported unicode ranges data.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-28 10:25:20 +01:00
Nikolay Sivov 3795100bf7 dwrite/tests: Some more tests for ComputeGlyphOrigins().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-28 10:25:18 +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 ddd7c8c51f dwrite: Use a helper for design advances.
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 d933afc4a4 dwrite/layout: Improve overhangs metrics computation.
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 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 3d100f7d56 dwrite/tests: Fix another factory leak (Valgrind).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-17 10:08:03 +01:00
Nikolay Sivov 75b02759b0 dwrite/tests: Fix some leaks (Valgrind).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-14 11:15:13 +01:00
Alex Henrie 195154b747 dwrite: Make constant 'globaldefaultW' static.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-03 10:48:59 +01:00
Nikolay Sivov c3ea5664b6 dwrite/tests: Add some tests for GetUnicodeRanges().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-26 12:23:28 +01:00
Nikolay Sivov a0c8f066d4 dwrite: Add support for memory font resources in CreateFontFaceFromHdc().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-22 23:55:57 +01:00
Nikolay Sivov 03ccce70b5 gdi32: Improve GetFontFileInfo() compatibility.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-21 20:10:52 +01:00
Nikolay Sivov 5ac5154c3d dwrite/tests: Add CreateFontFaceFromHdc() test for in-memory font.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-19 22:42:41 +01:00
Nikolay Sivov 9fb74b68a4 dwrite: Improve returned font metrics when OS/2 table is missing.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-12 10:30:26 +01:00
Nikolay Sivov a090314c72 dwrite/tests: Test run bidi level too.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-07 17:09:00 +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 689683dfaf dwrite/layout: Set default tab stop width.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-05 19:12:12 +01:00
Lucian Poston 70654e5c83 dwrite/tests: Add a test for text format with unknown font family name.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-05 19:12:12 +01:00
Nikolay Sivov d19e34d8f0 dwrite: Release file streams when building collections.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-31 16:17:36 +01:00
Nikolay Sivov 8a14df1e78 dwrite/layout: Test resulting line width before adding inline trimming run.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-22 00:02:14 +02:00
Nikolay Sivov 7e0d10250c dwrite: Multiply run analysis transform by dpi scale factor.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 15:24:39 +02:00
Nikolay Sivov 470ed3c559 dwrite: Avoid possible out-of-bounds cluster metrics access.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45535
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 12:07:04 +02:00
Michael Stefaniuc 962b31c80b include: Add a generic available ARRAY_SIZE().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-04 10:39:15 +02: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
Michael Stefaniuc 7b5668a6e7 include: Make ARRAY_SIZE() available in wine/test.h.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-25 12:09:17 +02:00
Nikolay Sivov abe71945ef dwrite/tests: Skip some tests on variable fonts.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-23 09:22:32 +02:00
Nikolay Sivov 3493792da3 dwrite/tests: Remove a test failing after recent update.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-23 09:22:28 +02:00
Nikolay Sivov e5966d7475 dwrite: Properly truncate face name to LOGFONT size.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-22 21:58:02 +02:00
Nikolay Sivov 63bdcf97a7 dwrite/tests: Use ARRAY_SIZE() macro in tests.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-22 21:58:02 +02:00
Nikolay Sivov 8b9ba16e9a dwrite: Support IDWriteTextFormat2 for layout.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-22 00:05:36 +02:00
Nikolay Sivov f3908ad676 dwrite: Support IDWriteFontList1 for font families.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-22 00:05:26 +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
André Hentschel 383fbf04cf dwrite/tests: Use fabs for floating point numbers (clang).
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-28 10:19:23 +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
Michael Stefaniuc 062948f57e dwrite/tests: Use the global HeapAlloc() wrappers.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-31 09:46:26 +01:00
Michael Stefaniuc b01b1383d9 dwrite: Use the global HeapAlloc() wrappers.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-30 10:00:03 +01:00
Nikolay Sivov f9e0b6a1e4 dwrite/tests: Add missing return value test (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-08 22:47:24 +01:00
Lucian Poston d00f9bce6c dwrite: Stub SetIncrementalTabStop with S_OK.
Signed-off-by: Lucian Poston <lucian.poston@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-27 16:15:40 +01:00
Nikolay Sivov e5276c766b dwrite: Set lfItalic style to get more compatible results for gdiinterop.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-02 12:14:03 +01:00
Nikolay Sivov f577fc8fa2 dwrite/tests: Some tests for font set properties.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-20 08:36:11 +02:00
Nikolay Sivov aa9fc63514 dwrite: Reuse streams when initializing font data and creating faces.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-18 15:37:48 +02:00
Huw Davies 625293289c dwrite: Avoid using RegQueryInfoKey().
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-16 15:26:40 +02:00
Nikolay Sivov e3a29a6c1d dwrite/tests: Fix object instance leak (Valgrind).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-16 15:26:32 +02:00
Andrey Gusev de4e3dda47 dwrite/tests: Fix a typo in ok() message.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-13 15:09:07 +02:00
Nikolay Sivov c4d9176196 dwrite: Recognize CFF2 table as CFF variant.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-09 15:24:40 +02:00
Nikolay Sivov d8e42057e0 dwrite: Recognize CBLC/CBDT image formats.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-09 15:24:40 +02:00
Nikolay Sivov c6a1fdcc0d dwrite: Read whole table directory with a single call when looking for table entry.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-09 15:24:40 +02:00
Nikolay Sivov 9bf92459d3 dwrite: Implement AnalyzeContainerType().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-09 15:24:40 +02:00
Nikolay Sivov fb8226f639 dwrite: Implement IDWriteInMemoryFontFileLoader.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-06 21:48:49 +02:00
Nikolay Sivov 4236c47023 dwrite/tests: Some more tests for in-memory loader.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-05 19:33:08 +02: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
Nikolay Sivov 3fbc00b593 dwrite: Consider inline objects overhang metrics for overall layout overhang metrics.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-02 10:14:13 +02:00
Jacek Caban 850b67f28f dwrite: Properly free mappings in fontfallbackbuilder_Release.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-02 10:14:13 +02:00
Nikolay Sivov 43c16a25eb dwrite: Use single per-process local file loader.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-25 22:21:41 +02:00
Nikolay Sivov 8dc81ed2a4 dwrite: Implement AddMapping().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-22 15:13:17 +02:00
Nikolay Sivov e1a41faf76 dwrite: Add warning message for unsupported interfaces.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-22 15:13:10 +02:00
Nikolay Sivov f2090cb415 dwrite/tests: Fix fallback builder test skip.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-22 15:13:06 +02:00
Nikolay Sivov c3252c3774 dwrite: Added custom IDWriteFontFallback stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-21 14:04:42 +02:00
Nikolay Sivov 3acbf50068 dwrite: Added IDWriteFontFallbackBuilder stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-20 20:04:27 +02:00
Nikolay Sivov 39dbf09b3f dwrite/tests: Added a helper to initialize test text source.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-14 11:22:33 +02:00
Nikolay Sivov 096df5f5ba dwrite: Support DWRITE_TRIMMING_GRANULARITY_WORD mode.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-11 18:43:28 +02:00
Francois Gouget 2f86c81f7f dwrite: Factory_release_cached_fontface() is unused so remove it.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-08 16:23:14 +02:00
Nikolay Sivov 899c622934 dwrite: Fix 8bpp bitmap copy.
Spotted by Matteo.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-07 09:07:03 +02:00
Nikolay Sivov c4917bdbdf dwrite: Use 8bpp bitmaps in grayscale mode.
Problem analyzed by Kimmo Myllyvirta.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-05 17:47:34 +02:00
Nikolay Sivov 0a63390841 dwrite: Validate buffer size passed to CreateAlphaTexture() against analysis texture type.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-05 17:47:32 +02:00
Nikolay Sivov 55aedbffa6 dwrite: Handle 8bpp gray bitmaps for bitmap target.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-05 17:47:31 +02:00
Nikolay Sivov 0ea60ffecd dwrite: Fix proportional spacing method.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-28 14:57:10 +02:00
Nikolay Sivov 1df4e64bbf dwrite: Improve empty contours handling in GetGlyphRunOutline().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-25 08:06:55 +02:00
Nikolay Sivov 1b16af0062 dwrite: Remove unused call.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-25 08:06:42 +02:00
Nikolay Sivov cc49c40f05 dwrite: Set leading text alignment for default trimming sign.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-24 17:46:29 +02:00
Nikolay Sivov d58166d47c dwrite: Don't use drawing effect for trimming signs.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-24 17:46:25 +02:00
Nikolay Sivov 65014bcab5 dwrite/tests: A test to draw trimming sign with drawing effect.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-24 17:46:12 +02:00
Nikolay Sivov 7bac9a025a dwrite/tests: Some tests for system font set.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-24 08:41:19 +09:00
Nikolay Sivov f85def7765 dwrite: Use safer method to set per-factory EUDC collection reference.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-24 08:41:19 +09:00
Nikolay Sivov db9990653c dwrite: Use safer method to set per-factory system collection reference.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-24 08:41:19 +09:00
Nikolay Sivov 072a9b00cf dwrite: Split initial cluster computation by stage.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-24 08:41:19 +09:00
Nikolay Sivov 5a70c58acd dwrite: Set drawing effect for trimming sign.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-24 08:41:19 +09:00
Nikolay Sivov 7fd7960b9d dwrite: Use more readable names for spacing attributes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-24 08:41:19 +09:00
Nikolay Sivov eb212c1939 dwrite: Simplify GetFontSignature().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-20 09:20:54 +09:00
Nikolay Sivov b93d9d93e7 dwrite: Added a helper to check for supported characters.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-20 09:20:51 +09:00
Nikolay Sivov fb5079d887 dwrite: Protect cached fontface list when accessed from multiple threads.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-20 09:20:48 +09:00
Nikolay Sivov 448e9ce644 dwrite: Use newer enum version to avoid type mismatch (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-24 18:58:31 +02:00
Nikolay Sivov addd8e69ff dwrite: Fix cache entry use-after-free (Valgrind).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-20 18:55:25 +02:00
Nikolay Sivov d06443d659 dwrite: Print missing table message as a trace.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-20 18:55:21 +02:00
Nikolay Sivov ddb78d73ab dwrite/tests: Use empty text in line metrics test.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-19 19:13:30 +02:00
Nikolay Sivov f4b7e4b5ed dwrite: Added ability to specify multiple families per fallback range.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-19 19:13:30 +02:00
Nikolay Sivov d1199995bf dwrite: Trace user-provided OpenType feature set.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-18 20:43:31 +02:00
Nikolay Sivov cef8a52dea dwrite: Explicitly check rendering parameters pointer passed to DrawGlyphRun().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-17 22:24:05 +02:00
Nikolay Sivov 1e5b9d369b dwrite: Use antialias mode set for bitmap render target.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-17 22:24:01 +02:00
Nikolay Sivov e1f191e343 dwrite: Improve rendering parameters validation.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-17 22:23:50 +02:00
Jens Reyer b736dbe933 make_unicode: Update data tables to Unicode 10.0.0.
Signed-off-by: Jens Reyer <jre.winesim@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-13 11:44:41 +02:00
Nikolay Sivov 18fe44c7af dwrite: Avoid repeated method calls during run rendering.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-11 18:25:36 +02:00
Alistair Leslie-Hughes 136d9928b6 dwrite/tests: Use standard wine_dbgstr_longlong.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-06 08:12:41 +02:00
Nikolay Sivov 7524db8937 dwrite: Grab font data reference when adding replacement.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-30 11:14:44 +02:00
Nikolay Sivov 842e2e5314 dwrite: Fix locale data buffer length passed to GetLocaleInfoEx().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-15 11:45:21 +02:00
Nikolay Sivov 74a9894819 dwrite/tests: Fix rendering mode variable type (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-15 11:11:38 +02:00
Nikolay Sivov af54ed51b0 dwrite: Fix compilation failure regarding nameless unions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-10 09:23:50 -05:00
Nikolay Sivov 5f7848595f dwrite: Initial support for number substitution.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-10 07:00:00 -05:00
Nikolay Sivov a7aca059f2 dwrite: Update to IDWriteFactory5.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-07 16:20:50 -05:00
Nikolay Sivov 901914519f dwrite/tests: Fully initialize call sequence test data (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-01 10:05:44 +02:00
Piotr Caban 4d02f2fed6 dwrite: Fix EUDC font collection use after free issue.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-27 19:00:25 +02:00
Piotr Caban 0925006822 dwrite: Don't fail in opentype_get_font_strings_from_id if any of font strings got decoded.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-27 19:00:25 +02:00
Piotr Caban e98cdc3215 dwrite: Don't crash on uninitialized cached and factory fields in dwritefontface_Release.
The function may be called with the fields uninitialized from
create_fontface when init_font_data fails.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-27 19:00:25 +02:00
Nikolay Sivov ace830625d dwrite: Update overhangs rectangle on alignment changes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-25 08:46:02 +02:00
Nikolay Sivov 7cb57e2ee8 dwrite: Extract supported image formats from 'sbix' table.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-25 08:45:57 +02:00
Nikolay Sivov 1b1488fda7 dwrite: Look for 'SVG ' table too when checking supported formats.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-24 10:02:30 +02:00
Nikolay Sivov b0f50e7e5b dwrite: Partially implement GetGlyphImageFormats().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-21 13:58:13 +02:00
Nikolay Sivov 9bf9a9590a dwrite: Added a helper to avoid extra traces from one method calling another.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-20 18:58:46 +02:00
Nikolay Sivov 5b07cfc13e dwrite: Handle allocation failure when duplicating reference key.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-20 18:58:46 +02:00
Nikolay Sivov 0344c19692 dwrite: Make CreateFontFaceFromHdc() properly fail on unsupported font format.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 20:02:54 +02:00
Nikolay Sivov ef31887c40 dwrite/tests: Initial tests for GetGlyphImageFormats().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 20:02:54 +02:00
Nikolay Sivov 533d3b904e dwrite: Trace QueryInterface fontface calls on failure (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 20:02:53 +02:00
Nikolay Sivov 74f6c99621 dwrite/tests: Initial tests for IDWriteInMemoryFontFileLoader.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 20:02:53 +02:00
Nikolay Sivov 4745565192 dwrite/tests: Test to show that canWrapLineAfter is not fixed up by disabled wrapping.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 20:02:53 +02:00
Nikolay Sivov 672ca3d3b8 dwrite: Consistently use common point and rect types.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 20:02:53 +02:00
Michael Stefaniuc 5a4cb67db9 dwrite: Use SetRectEmpty() instead of memset().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-12 19:03:14 +02:00
Nikolay Sivov d5d863597d dwrite: Fix file object leak.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-11 14:59:25 +02:00
Nikolay Sivov f5b6563bec dwrite: Pass index directly to font and family creation helpers.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-11 14:59:24 +02:00
Nikolay Sivov be5a4656bd dwrite: Improve font objects refcounting.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-11 14:59:21 +02:00
Nikolay Sivov a0b0fac31b dwrite/tests: Test locale name length in DrawGlyphRun().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-10 21:51:39 +02:00
Nikolay Sivov e258917a43 dwrite: Initial implementation of ComputeGlyphOrigins().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-07 18:05:48 +02:00
Nikolay Sivov abfc973c85 dwrite: Fix explicit levels returned for LRE and RLE control characters.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-05 16:17:28 +02:00
Nikolay Sivov 98a8989908 dwrite/tests: Some bidi resolution tests.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-05 16:17:28 +02:00
Nikolay Sivov 862503df70 dwrite/tests: Test number of lines for a failing drawing test.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-05 16:17:27 +02:00
Nikolay Sivov a42a9940cf dwrite: Classify direction control characters as complex.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-05 16:17:27 +02:00
Nikolay Sivov 1809ff9004 dwrite: Use user transform when rendering individual glyphs.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-04 14:54:48 +02:00