Commit graph

1298 commits

Author SHA1 Message Date
Nikolay Sivov 5d9f0be001 dwrite: Handle variation selectors 17-256 in MapCharacters().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-09-01 17:42:49 +02:00
Nikolay Sivov 8e1278684a dwrite: Add NNBSP (202F) to Mongolian fallback range.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-31 21:52:25 +02:00
Nikolay Sivov 55439cc3ef dwrite: Skip variation selectors in MapCharacters().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-31 21:52:25 +02:00
Nikolay Sivov 857ec56f45 dwrite/fallback: Add Georgian and Armenian ranges.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-11 16:51:00 +02:00
Nikolay Sivov 1795fd7af9 dwrite/fallback: Fill in some more fallback ranges for various scripts.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-10 14:07:35 +02:00
Nikolay Sivov 5b46a8a065 dwrite/fallback: Add mappings for some CJK ranges.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-09 15:53:32 +02:00
Nikolay Sivov 2879930172 dwrite/tests: Add a helper to create analyzer instance.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-09 15:53:32 +02:00
Nikolay Sivov 1bff5e5859 dwrite/fallback: Make sure all consecutively mapped characters belong to the same mapping.
Picked fallback font often has wider character support than the ranges it's configured for.
Desired behavior is to stop at the first character that doesn't belong to current mapping.
For example, in texts like "abc<some CJK sequence>abc" we'd want the same for both "abc" sequences,
as opposed to using fallback CJK font for trailing Latin range.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-08 18:51:25 +02:00
Nikolay Sivov e25ff734cf dwrite/fallback: Consider character size for returned mapped length.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-08 18:51:23 +02:00
Nikolay Sivov c4c3e9fee4 dwrite: Add ff00-ffef range to the fallback configuration.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-05 20:13:33 +02:00
Nikolay Sivov 2dd903885b dwrite: Fix stretch value validation in CreateTextFormat().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-03 15:09:02 +02:00
Nikolay Sivov f6f2a1a3e5 dwrite: Fix fallback config ranges text parsing.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-29 18:55:38 +02:00
Nikolay Sivov 9ff62cb30a dwrite: Add Arabic fallback ranges.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-27 23:07:06 +02:00
Nikolay Sivov b32acacb4f dwrite: Add a few more fallback ranges.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-25 22:47:47 +02:00
Nikolay Sivov 5259c1a1dc dwrite: Use correct ranges to set DWRITE_SCRIPT_SHAPES_NO_VISUAL.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-25 22:47:47 +02:00
Nikolay Sivov dcb8094a37 dwrite: Use u32-reads for AnalyzeScript().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-25 22:47:47 +02:00
Nikolay Sivov d8fa0ff148 dwrite: Add some mappings for Tahoma in the system fallback.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-22 17:54:10 +02:00
Nikolay Sivov 26e717c565 dwrite: Remove old system fallback logic.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-22 17:54:10 +02:00
Nikolay Sivov d37eb0f144 dwrite: Implement MapCharacters() for custom fallback.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-22 17:54:09 +02:00
Nikolay Sivov d800cd7437 dwrite: Extend matching font creation helper.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-22 17:54:09 +02:00
Nikolay Sivov fcbb0f6c61 dwrite: Duplicate mapping data when creating fallback object.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-22 17:54:09 +02:00
Nikolay Sivov f2ad1d8b93 dwrite: Override existing ranges with AddMapping().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-22 17:54:09 +02:00
Nikolay Sivov 76e675a011 dwrite: Keep locales separate for fallback data.
Each locale entry contains a "list" of its mappings.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-22 17:54:08 +02:00
Nikolay Sivov 78846236b9 dwrite: Filter out unusable ranges on AddMapping().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-22 17:54:08 +02:00
Nikolay Sivov 1cf2ac20c8 dwrite: Add additional structure for mappings array.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-22 17:54:08 +02:00
Nikolay Sivov c4af69e0b7 dwrite: Use older interface version for fallback system collection.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-07-22 17:54:07 +02:00
Alexandre Julliard 194e09baec makefiles: Add separate variables for Unix flags and libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-06-29 23:23:41 +02:00
Nikolay Sivov 295599e2c2 dwrite/opentype: Fix GPOS PairSet array offset.
Passed offset already includes subtable offset.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-19 20:52:32 +02:00
Nikolay Sivov 979868aed5 dwrite/opentype: Do not include base advance to the mark advance offset.
This is handled later using attachment chains, after all positional features are applied.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-02 11:34:14 +02:00
Nikolay Sivov d2d91fba55 dwrite/opentype: Fix incorrect MarkGlyphSets table handling.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-02 11:34:09 +02:00
Nikolay Sivov e71920d2f4 dwrite/opentype: Correct flags field size for layout lookup structure.
Higher 16 bits are used for mark filtering set index.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-02 11:34:05 +02:00
Nikolay Sivov f5e33215ee dwrite/opentype: Use stdint types for font file structures.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-27 13:25:10 +02:00
Nikolay Sivov b3291c80fb dwrite/opentype: Use stdint type for color font structures.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-27 13:25:07 +02:00
Nikolay Sivov e1270c99fe dwrite/opentype: Use stdint types for layout table structures.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-26 13:27:05 +02:00
Nikolay Sivov 2c408860ae dwrite: Implement variation axis value methods for the resource object.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-26 13:27:02 +02:00
Nikolay Sivov 075730925a include: Fix IDWriteFontResource definition.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-26 13:26:59 +02:00
Nikolay Sivov cecf7d55a9 dwrite: Implement CreateTextFormat() for IDWriteFactory6.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-26 13:26:56 +02:00
Nikolay Sivov fe86eeceeb dwrite: Implement newer GetSystemFontCollection() variants.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 14:59:51 +02:00
Nikolay Sivov 38d2d2f350 dwrite: Initial implementation of CreateFontCollectionFromFontSet().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 14:59:46 +02:00
Nikolay Sivov 7e3edfabc5 dwrite: Prefer different family names for typographical collections.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 14:59:41 +02:00
Nikolay Sivov b3cf1df4f4 dwrite: Use separate structure for set entry description.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 14:59:36 +02:00
Nikolay Sivov 9250a3ab54 dwrite: Implement GetFontFamilyModel().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 14:59:31 +02:00
Nikolay Sivov e32f59461a dwrite: Simplify collection object initialization.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 14:59:27 +02:00
Nikolay Sivov fd56f8e31c dwrite: Remove already defined macros.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 14:59:23 +02:00
Nikolay Sivov 58ea0d81e5 dwrite/tests: Use table access helpers for CBLC tests.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 14:59:19 +02:00
Nikolay Sivov 76a4039e27 dwrite/tests: Add a test for unset axis for references created with IDWriteFactory3.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 14:59:14 +02:00
Nikolay Sivov 76fa97cddd dwrite/tests: Fix context text.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-20 22:57:46 +02:00
Nikolay Sivov 77c06dfb29 dwrite/tests: Use safe table access helpers for GetFontSignature().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-20 22:57:42 +02:00
Dmitry Timoshkov a90d976bb4 dwrite/tests: Add some fallback tests for Segoe UI Symbol.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-05 10:49:22 +02:00
Alexandre Julliard 73b94f8f94 dwrite: Only use __builtin_popcount in PE builds.
It's not compatible with -mabi=ms.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-14 11:26:22 +01:00