Commit Graph

922 Commits

Author SHA1 Message Date
Nikolay Sivov 1e8f554ef9 dwrite: Initial support for line trimming signs.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-26 10:43:12 +01:00
Nikolay Sivov 82d7373318 dwrite: Restructure line wrapping logic, fix the way breaking position is selected.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-26 10:43:10 +01:00
Nikolay Sivov 3871981e3a dwrite: Invalidate layout on box changes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-26 10:43:08 +01:00
Nikolay Sivov e9ff71f62b dwrite: Remove existing effective runs before evaluating them again.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-26 10:43:06 +01:00
Nikolay Sivov c32a19f198 dwrite: Implement another variant of CreateGlyphRunAnalysis().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-26 10:43:03 +01:00
Nikolay Sivov 669d033ee1 dwrite: Use OpenType 1.8 'hhea' table structure.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 11:26:27 +01:00
Nikolay Sivov 08a729fc15 dwrite: Use OpenType 1.8 'head' table structure.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 11:26:24 +01:00
Nikolay Sivov 274a82b33c dwrite: Let freetype face cache manage lifetime of requested file fragments.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-18 23:07:22 +01:00
Nikolay Sivov 6e356742e3 dwrite: Improve strikethrough and underline thickness extraction logic.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-20 13:02:05 +01:00
Nikolay Sivov 6d0fa4cebc dwrite: Fully initialize shared factory vtable.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-20 13:01:27 +01:00
Nikolay Sivov a7845c312e dwrite/tests: Run GetPanose() tests on all system fonts.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-15 11:29:03 +01:00
Nikolay Sivov 93829e4b2b dwrite: Fix a typo in assertion condition (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-12 19:14:19 +01:00
Nikolay Sivov c22b2192e5 dwrite: Improve ConvertFontFaceToLOGFONT using same logic IDWriteFont uses.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-07 14:50:29 +01:00
Nikolay Sivov bf23b8a529 dwrite: Use system default locale when filling LOGFONT.lfFaceName.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-07 14:50:19 +01:00
Nikolay Sivov 17586e3082 dwrite: Improve face name returned by ConvertFontToLOGFONT().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 11:46:35 +01:00
Nikolay Sivov 3ffa9ee082 dwrite/tests: Use defined symbols when testing LOGFONT fields values.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 11:46:33 +01:00
Nikolay Sivov da11bee6c7 dwrite: Improve lfWeight values returned by ConvertFontToLOGFONT().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 11:46:31 +01:00
Nikolay Sivov a7fd13c244 dwrite: Fix lfItalic flag as returned by ConvertFontToLOGFONT().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 11:46:28 +01:00
Nikolay Sivov 3316f90418 dwrite: Return zeroed fsCsb for OS/2 table of version 0.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 11:46:26 +01:00
Nikolay Sivov 93ac04d608 dwrite: Skip entries prefixed with '@' in system font file enumerator.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-02 11:43:14 +01:00
Nikolay Sivov 89565b5e1e dwrite: Make it clear that wine_dbgstr_longlong() output is in hex.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-16 13:20:17 -06:00
Nikolay Sivov 4c7e136013 dwrite: Update script list with latest additions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-06 17:40:05 +01:00
Nikolay Sivov 9103ee4c66 dwrite: Set fontface pointer and font size for returned color glyph run.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-06 17:39:41 +01:00
Nikolay Sivov 1e8a706bc3 dwrite: Update file type and face type enums.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-06 17:39:39 +01:00
Nikolay Sivov 9bf1114d71 dwrite: Update to IDWriteFontFace4.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-30 17:07:38 +01:00
Nikolay Sivov 988cf549fc dwrite: Update to IDWriteFactory4.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-11 16:59:33 +02:00
Nikolay Sivov badccd8c7c dwrite/tests: Remove unnecessary font face creation.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-26 23:23:38 +09:00
Nikolay Sivov 1c7a1f8f27 dwrite: Fail stream creation on file mapping failure.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-26 23:23:38 +09:00
Nikolay Sivov 52bbc64a67 dwrite: Handle zero specified weight as normal.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-15 12:55:27 +09:00
Sebastian Lackner 1540a19359 dwrite: Fix font stretch name conversion table.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-15 12:55:25 +09:00
Nikolay Sivov ff57b1febb dwrite: Sanitize specified stretch value, valid range is [1, 9].
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-15 12:55:22 +09:00
Nikolay Sivov 36cce60f8d dwrite/tests: Fix indentation warnings on GCC 6.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-09 23:56:11 +09:00
Nikolay Sivov ff6f31de76 dwrite: Add missing return value check (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-04 09:07:32 -05:00
Michael Stefaniuc b8a3fabc0c dwrite/tests: Use SetRectEmpty() instead of memset().
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-01 20:38:55 -05:00
Nikolay Sivov fe2aa15516 dwrite: Added missing script tags.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-25 19:36:08 +09:00
Nikolay Sivov 43c61820fb dwrite: Update to DWRITE_LINE_METRICS1.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-25 19:36:06 +09:00
Nikolay Sivov 32c1ef019a dwrite: Only invalidate lines if line spacing changed.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-25 19:36:04 +09:00
Nikolay Sivov 9ec714db5d dwrite: Implement newer SetLineSpacing/GetLineSpacing.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-25 19:36:01 +09:00
Nikolay Sivov 4f01bee4c8 dwrite: Filter invalid weight in SetFontWeight().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-20 11:04:02 +09:00
Nikolay Sivov 02773e1f15 dwrite/tests: A couple of tests for matching with invalid font properties.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-20 11:04:00 +09:00
Nikolay Sivov 0973f4655a dwrite: Implement GetOverhangMetrics() for trimming sign.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-20 11:03:58 +09:00
Nikolay Sivov e5fb775142 dwrite: Implement SetTrimming() for layout.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-19 09:52:26 +09:00
Nikolay Sivov fee64bed45 dwrite: Validate CreateTextFormat() arguments.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-18 19:31:02 +09:00
Nikolay Sivov 84a36f27b8 dwrite: Use more intuitive naming for layout stages.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-18 19:30:59 +09:00
Nikolay Sivov 3fa7ff671c dwrite: Ignore fonts with dot-prefixed names.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-15 19:56:40 +09:00
Nikolay Sivov b6bb4c1b92 dwrite: Partially implement GetSystemFontCollection().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-08 11:52:58 +09:00
Nikolay Sivov c4d08275d0 dwrite: Check all 'vert' lookups, not just the first one.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-07 11:17:59 +09:00
Nikolay Sivov cedd95e2a8 dwrite: Fix recently added script properties.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-05 23:22:05 +09:00
Nikolay Sivov bf211623fd dwrite: Implement another CreateFontFace() variant.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-05 23:22:05 +09:00
Nikolay Sivov e30607fdb0 dwrite: Implement HasVerticalGlyphVariants().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-05 23:22:04 +09:00
Nikolay Sivov 90bcff0eae dwrite: Return some of font properties from IDWriteFontFace3 methods.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-05 23:22:04 +09:00
Nikolay Sivov 29abc7f172 dwrite: Keep original script for NO_VISUAL case.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-04 17:41:04 +09:00
Nikolay Sivov c38be91061 dwrite: Improve script mapping generation.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-04 17:41:00 +09:00
Marcus Meissner 64ccbcbf2f dwrite: Use correct collection (Coverity).
Signed-off-by: Marcus Meissner <marcus@jet.franken.de>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-03 10:20:02 +09:00
Nikolay Sivov bbb9bbdbdb dwrite: Update line breaking algorithm according to Unicode 9.0.0 specification.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-23 12:02:09 +09:00
Nikolay Sivov 58e0972c5c Update data tables to Unicode 9.0.0.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-22 22:09:28 +09:00
Nikolay Sivov bee56c33c5 dwrite: Don't bother going through fallback for non-visual runs.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-17 12:23:49 +09:00
Nikolay Sivov 0e913c4abc dwrite: Trace script name in shaping methods.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-17 00:09:20 +09:00
Nikolay Sivov 96cc50e1d0 dwrite/tests: Fix some leaks in tests (Valgrind).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-14 01:03:00 +09:00
Nikolay Sivov f1079fe162 dwrite: Fix invalid read when building zero length text layout (Valgrind).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-14 01:02:59 +09:00
Nikolay Sivov 69caad4469 dwrite: Implement IDWriteFontFace3::GetRecommendedRenderingMode().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-07 12:32:21 +09:00
Nikolay Sivov c43a3d48af dwrite: Fix font data array leak on list release (Valgrind).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-30 11:10:24 +09:00
Nikolay Sivov a940ab325a dwrite: Resolve BNs and embedding and override formatting characters to preceding level.
Mirrors commit 71cabaa4b9.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-21 00:53:51 +09:00
Nikolay Sivov e0e937e19a dwrite: Be prepared for 0 face_id passed to face requester.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-18 19:39:19 +09:00
Nikolay Sivov 474033a4b8 dwrite/tests: Remove unused functions (Clang).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-18 10:36:20 +09:00
Nikolay Sivov a3e3dfcef2 dwrite/tests: Simplify refcount check a bit.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-18 10:36:14 +09:00
Nikolay Sivov a935716f1d dwrite/tests: Get rid of global script analysis variable.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-17 11:49:21 +09:00
Nikolay Sivov cc610a0933 dwrite: Don't reset advances if original and modified advances are the same array.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-17 11:49:16 +09:00
Nikolay Sivov 7119c50940 dwrite/tests: Couple more tests for IDWriteNumberSubstitution creation.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-17 11:49:12 +09:00
Francois Gouget b62c76207f dwrite: Notify_factory_fallback_removed() is unused so remove it.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-16 15:32:30 +09:00
Nikolay Sivov c5259f72e3 dwrite: Implement IDWriteFontFamily1::GetFontFaceReference().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-06 11:45:25 +09:00
Nikolay Sivov e82cf8aa70 dwrite: Implement IDWriteFontList1::GetFontFaceReference().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-06 11:45:25 +09:00
Nikolay Sivov 51154acb6a dwrite: Implement IDWriteFontList1::GetFont().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-06 11:45:25 +09:00
Nikolay Sivov 890312ccfd dwrite: Validate simulation flags and fail face/reference creation.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-05 20:40:29 +09:00
Nikolay Sivov bda5f57008 dwrite: Fix reference equality condition.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-05 20:40:24 +09:00
Nikolay Sivov ca99107daa dwrite/tests: A test for references returned from IDWriteFontFace3.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-05 20:40:20 +09:00
Nikolay Sivov 2b96276183 dwrite: Use common structure to pass stream/facetype/index data around.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-05 01:27:51 +09:00
Nikolay Sivov 5dc5bb7580 dwrite: Implement GetFontSignature().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-05 01:27:51 +09:00
Nikolay Sivov dcfd21cfb2 dwrite: Make IDWriteGdiInterop1 a part of a factory.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-04 01:03:28 +09:00
Michael Stefaniuc 41729840e4 dwrite: Use SetRect() instead of open coding it.
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-04 01:03:28 +09:00
Michael Stefaniuc a5e2bd5902 dwrite/tests: Use SetRect() instead of open coding it.
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-04 01:03:28 +09:00
Nikolay Sivov 5fb8acc536 dwrite: For object creation helpers with many arguments pack them in structures.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-27 19:43:08 +09:00
Louis Lenders 938cd952ad dwrite: Print a FIXME only once in dwritetextanalyzer_AnalyzeNumberSubstitution.
Signed-off-by: Louis Lenders <xerox.xerox2000x@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-26 21:36:13 +09:00
Nikolay Sivov 8a6c1d99c3 dwrite: Implement newer version of CreateFontFromLOGFONT().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-22 22:33:38 +09:00
Nikolay Sivov d9c446050a dwrite: Implement IDWriteFont3::GetFontFaceReference().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-21 15:34:44 +09:00
Nikolay Sivov 9777c77a57 dwrite: Implement IDWriteFont3::HasCharacter().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-21 15:34:44 +09:00
Nikolay Sivov e7667fa2b7 dwrite: Fix IDWriteFont3 QueryInterface to respond to its own IID.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-21 15:34:43 +09:00
Nikolay Sivov 9d0bbb1364 dwrite: Implement IDWriteFontFaceReference::Equals().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-21 15:34:43 +09:00
Nikolay Sivov fd06cc7c49 dwrite: Initial implementation of IDWriteFontFaceReference.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-20 16:55:08 +09:00
Nikolay Sivov e55d407430 dwrite: Accept local loader in CreateCustomFontFileReference().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-20 16:55:06 +09:00
Nikolay Sivov af18a09862 dwrite: Handle NULL path in CreateFontFileReference().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-20 16:55:04 +09:00
Nikolay Sivov 8b8098461d dwrite/tests: Some basic tests for fontface references.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-20 16:55:01 +09:00
Nikolay Sivov e48879b13f dwrite/tests: Added GetFontSignature() test.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-20 16:54:59 +09:00
Nikolay Sivov f9e257418e dwrite: Update to IDWriteGdiInterop1.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-19 21:06:10 +09:00
Nikolay Sivov 897c1d03fa dwrite: Fix IDWriteFactory3 methods order.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-19 21:06:10 +09:00
Nikolay Sivov 54b89a2942 dwrite: Implement GetFontFamily() for IDWriteFontCollection1.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-19 21:06:09 +09:00
Nikolay Sivov ae85317b1d dwrite: Update to IDWriteRenderingParams3.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-19 21:06:09 +09:00
Nikolay Sivov 886875f01e dwrite/tests: Use existing macro to define font table tags.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-18 15:08:07 +09:00
Nikolay Sivov 0d77aaccf1 dwrite/tests: Test for lineGap metric.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-18 15:08:05 +09:00
Nikolay Sivov c7a174f76b dwrite/tests: Test for superscript/subscript font metrics.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-15 12:33:35 +09:00
Nikolay Sivov 726e82dde2 dwrite/tests: A test for glyphBox* metrics.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-15 01:14:27 +09:00
Nikolay Sivov f0dd5a012d dwrite: Only use fsSelection to switch to sTypo* metrics, remove table version check.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-13 21:43:03 +09:00
Nikolay Sivov 137030bf77 dwrite: Always return non-zero metrics for strikethrough/underline thickness.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-11 11:36:40 +09:00
Nikolay Sivov f94447526a dwrite/tests: Test underline/strikethrough metrics for all system fonts.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-11 11:36:38 +09:00
Nikolay Sivov 7cac7bb99f dwrite: Always initialize context and font table pointers.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-01 18:34:26 +09:00
Nikolay Sivov d04a54857c dwrite: Update to IDWriteFactory3.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-28 21:51:14 +09:00
Nikolay Sivov 7c6dcab73f dwrite: Use regular QI way to return interface client asked for.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-28 21:51:09 +09:00
Nikolay Sivov 6ff1f38ba2 dwrite: Update to IDWriteFontList1.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-09 18:40:53 +09:00
Nikolay Sivov 42de7a468c dwrite: Remove flag marking system collections.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-09 18:40:51 +09:00
Nikolay Sivov 962f16e94b dwrite: Update to IDWriteFontCollection1.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-09 18:40:49 +09:00
Nikolay Sivov cf3e92994d dwrite: Implement IDWriteFontFamily1::GetFont().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-09 18:40:47 +09:00
Nikolay Sivov 05e42a55ec dwrite: Update to IDWriteFontFamily1.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-09 18:40:45 +09:00
Nikolay Sivov fa6c255f8d dwrite: Update to IDWriteFont3.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-07 23:36:58 +09:00
Nikolay Sivov 27ca16c7c9 dwrite: Use correct return code on allocation failure.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-07 23:36:55 +09:00
Nikolay Sivov d27a792e48 dwrite: Implement HasCharacter() for a fontface.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-03 15:26:32 +09:00
Nikolay Sivov 77c5ed607a dwrite: Update to IDWriteFontFace3.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-03 15:26:29 +09:00
Alexandre Julliard 0bbeaae678 make_unicode: Mark most data tables as hidden.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-25 00:25:01 +09:00
Nikolay Sivov 7276d5fac1 dwrite: Handle font data initialization failure when building collections.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-24 01:25:31 +09:00
Nikolay Sivov a8a6f0bd86 dwrite: Trace GetPaletteEntries() failure (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-22 17:37:10 +09:00
Nikolay Sivov 7dd90faaa3 dwrite: Fix Unknown/Common/Inherited script categories handling.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 11:08:00 +09:00
Nikolay Sivov 6992f86591 dwrite: Make SetBidiLevel() calls relative to initial text source position.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 11:06:57 +09:00
Frédéric Delanoy 4f1a8da1cd dwrite/tests: Use todo_wine_if() in tests.
Signed-off-by: Frédéric Delanoy <frederic.delanoy@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 00:49:07 +09:00
Nikolay Sivov c51212e55b dwrite: Update to IDWriteTextFormat1.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-17 13:07:39 +09:00
Nikolay Sivov 5753e22d21 dwrite: Implement InvalidateLayout().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-17 13:07:33 +09:00
Nikolay Sivov 9efd13503d dwrite: Update to IDWriteTextLayout3.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-17 13:07:28 +09:00
Nikolay Sivov 5ec7a860bf dwrite: Always use system font collection to create fallback fonts.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-16 12:09:38 +09:00
Nikolay Sivov 1a92176b67 dwrite: Add fallback data for some of Japanese ranges.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-16 12:09:38 +09:00
Nikolay Sivov fca83b0915 dwrite: Use itemizer hint to reset invisible run glyph count.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-16 12:09:38 +09:00
Nikolay Sivov 297b3d080a dwrite: Force advances to zero for isZeroWidthSpace glyphs.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-16 12:09:38 +09:00
Nikolay Sivov c7305c07af dwrite: Suppress noisy message when parsing name records.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-15 13:41:32 +09:00
Nikolay Sivov 7fc7f2f074 dwrite: Use current layout fallback when creating run font faces.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-15 13:41:23 +09:00
Nikolay Sivov 5d17404287 dwrite: Initial implementation of MapCharacters().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-15 13:41:20 +09:00
Nikolay Sivov 2c29838b11 dwrite: Move local stream tracing to a separate channel.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-15 13:41:18 +09:00
Nikolay Sivov 4d512f9e4e dwrite: Keep factory reference for each layout.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-15 13:41:16 +09:00
Nikolay Sivov af206b1b2d dwrite: Implement stub for system IDWriteFontFallback.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-15 13:41:13 +09:00
Charles Davis dcca411ac3 dwrite: Fix typos, and fix definition of Mac LangCodes for Welsh and up.
Signed-off-by: Charles Davis <cdavis5x@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-12 23:07:30 +09:00
Nikolay Sivov 5a262d45dc dwrite: Support font replacement registry settings.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-12 23:06:54 +09:00
Nikolay Sivov 38a99b2f25 dwrite: Add support for PFM files in Analyze().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-11 12:17:24 +09:00
Nikolay Sivov e17e6e42d1 dwrite: Use enum members for class testing, simplify reseting to NI before applying Nx rules.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-11 01:26:42 +09:00
Nikolay Sivov 3d34f29b5c dwrite: Add a helper to test for isolate class instead of relying on enum layout.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-11 01:26:42 +09:00
Nikolay Sivov 6389f41135 gdi32: Fix otmfsSelection to have italic style set in case of oblique simulation.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-09 23:27:13 +09:00
Nikolay Sivov f26b4a3575 dwrite: Fetch all glyphs at once instead of locking/unlocking for every glyph.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-09 23:26:21 +09:00
Nikolay Sivov ce526d15ec dwrite: Support optional glyph offsets for color runs.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-09 23:26:16 +09:00
Nikolay Sivov 79fa94c3c2 dwrite/tests: Added a drawing test for run reordering case.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-09 23:26:11 +09:00
Nikolay Sivov 15485f538d dwrite: Improve error handling in ConvertFontToLOGFONT() (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 20:13:41 +09:00
Nikolay Sivov 8a4db9fd90 dwrite: Implement color glyph run decomposition.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 20:13:33 +09:00
Nikolay Sivov 2e927af328 dwrite: Implement IsColorFont().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 20:13:22 +09:00
Nikolay Sivov 63e1b3f545 dwrite: Don't create enumerator with invalid palette.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 20:13:12 +09:00
Nikolay Sivov ec3c7d9d3a dwrite: Accept platform 0 name records if there's nothing, else.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 20:12:48 +09:00
Nikolay Sivov c506a52fac dwrite/tests: Remove failing test line, we have skips for this now.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-05 20:34:45 +09:00
Nikolay Sivov 032e088c7d dwrite: Recognize Type1 .pfb files in Analyze().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-05 13:53:48 +09:00
Nikolay Sivov 076b35362a dwrite: Rework Analyze() to make it easier to extend.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-05 13:53:43 +09:00
Nikolay Sivov 788e1dc7a0 dwrite/tests: Skip tests if no English family name was returned.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-04 14:41:18 +09:00
Nikolay Sivov b2a0fbc158 dwrite: Implement SetLineSpacing() for layout.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-03 21:56:57 +09:00
Nikolay Sivov bac7e9c65e dwrite: Implement SetFlowDirection() for layout.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-03 21:56:54 +09:00
Nikolay Sivov fc4b4be528 dwrite: Invalidate layout on all cases of attribute change.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-03 21:56:52 +09:00
Nikolay Sivov 2b59029aa1 dwrite: Add a zero width line after last mandatory breakpoint.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-03 21:56:50 +09:00
Nikolay Sivov 20b5cdb1d4 dwrite/tests: Test that soft hyphen is not marked as a whitespace.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-02 14:39:22 +09:00
Nikolay Sivov e7094551fe dwrite: Release drawing effect after trimming sign Draw().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-02 14:39:20 +09:00
Nikolay Sivov e94264e6bd dwrite: Improve SetScriptAnalysis()/SetBidiLevel() tracing.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-02 14:39:17 +09:00
Nikolay Sivov 8d9bf23fc1 dwrite: Don't use BOOL values to set bit fields.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-02 14:39:14 +09:00
Nikolay Sivov f84eaad8dc dwrite: Fix newlineLength metric to include all newline chars at the end of the line.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-02 14:39:11 +09:00
Nikolay Sivov 567f83a317 dwrite: Remove some redundant includes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-01 21:05:29 +09:00
Nikolay Sivov 0691af08c6 dwrite: Implement GetTextBeforePosition() for layout analysis source.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-01 21:05:24 +09:00
Nikolay Sivov da7c3ef578 dwrite: Implement GetLocaleName() for layout analysis source.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-01 21:05:18 +09:00
Nikolay Sivov 978ca1565b dwrite: Use regular refcounting pattern for layout internal sink/source interfaces.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-01 21:05:10 +09:00
Nikolay Sivov a43fd70f4a dwrite: Update callback analysis interfaces used by layout internally.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-01 21:05:06 +09:00
Nikolay Sivov feca77fb0c dwrite: Set isNewline cluster flag.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:17 +09:00
Nikolay Sivov 8b831b9d56 dwrite: Return NULL file pointer on CreateCustomFontFileReference() failure.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:16 +09:00
Nikolay Sivov 7dd4b9b74b dwrite: Don't use BOOL defined values for fields that are not BOOL.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-28 13:44:58 +09:00
Nikolay Sivov ef73b788e5 dwrite: Inline object origin is at top-left corner, not baseline.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-28 13:44:55 +09:00
Nikolay Sivov fbcf15313d dwrite: Return valid metrics for layout created on empty text.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-28 13:44:51 +09:00
Nikolay Sivov df68743187 dwrite/tests: Some tests for layout based on empty text.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-28 13:44:48 +09:00
Nikolay Sivov 8485fa64ca dwrite: Fix parameter validation in CreateTextLayout()/CreateGdiCompatibleTextLayout().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-28 13:44:44 +09:00
Nikolay Sivov 2c6799dfe2 dwrite: Line height/baseline includes lineGap as well.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-27 23:52:25 +09:00
Nikolay Sivov 3254a6b2d6 dwrite: Fix invalid cluster metrics array index access.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-27 23:52:17 +09:00
Nikolay Sivov f27b99ec2f dwrite: Implement DetermineMinWidth() using line breaking info.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-26 22:40:40 +09:00
Nikolay Sivov 2975ae9cbf dwrite: Fix setting canWrapLineAfter cluster flag.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-26 22:40:37 +09:00
Nikolay Sivov d171185062 dwrite: Reuse linebreaking isSoftHyphen flag for cluster metrics.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-26 22:40:34 +09:00
Nikolay Sivov 00766538c5 dwrite: Reuse linebreaking whitespace flag when filling cluster metrics.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-26 22:40:31 +09:00
Nikolay Sivov 0b7f857845 dwrite: Zero width space U+200b is not a whitespace from analyzer/layout point of view.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-26 22:40:27 +09:00
Nikolay Sivov a62a9fcc1f dwrite: Fix underline/strikethrough position adjustment caused by text alignment.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-25 16:11:44 +09:00
Nikolay Sivov 3fa5ebd014 dwrite: Remove useless assignment (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-25 16:11:40 +09:00
Nikolay Sivov 2626f80b01 dwrite: Don't check for line overflow for DWRITE_WORD_WRAPPING_NO_WRAP mode.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-25 16:11:36 +09:00
Nikolay Sivov 10b843bb22 dwrite: Update line breaking logic with Unicode 8.0.0 modifications.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-25 16:11:31 +09:00
Nikolay Sivov 68c45de6ae dwrite: Fix off by one issue in line breaking rule LB21a.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-25 16:11:27 +09:00
Nikolay Sivov 91df67df0c dwrite: Cluster text position is relative to initial run.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-25 16:11:23 +09:00
Nikolay Sivov eae84e7dde dwrite: Return earlier from GetKerningPairAdjustments() when pair kerning is not supported.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-22 17:54:59 +09:00
Nikolay Sivov ed3b5a42be dwrite: Ask freetype once about kerning pairs support and monospaced property.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-22 17:54:59 +09:00
Nikolay Sivov 6024656f98 dwrite: Underline reading direction matches run direction.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-20 14:48:57 +09:00
Nikolay Sivov adfd1ad2ce dwrite: Underline origin is always at the left run boundary.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-20 14:48:53 +09:00
Nikolay Sivov ff8f129af6 dwrite: Use callback freetype API to implement GetGlyphRunOutline().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-19 20:48:07 +09:00
Nikolay Sivov f586683e78 dwrite/tests: A test to compare font metrics with bold simulation and without.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-18 14:19:18 +09:00
Nikolay Sivov d4438dae93 dwrite: Fix comment typos.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-18 14:19:09 +09:00
Nikolay Sivov ac7954b7b9 dwrite: Always initialize out pointers.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-15 23:53:06 +09:00
Nikolay Sivov 0874c7be15 dwrite: Store locale name range attribute in lower case.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-15 15:11:10 +09:00
Nikolay Sivov c5fce83f3d dwrite: Implement support for underlines.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-15 15:11:04 +09:00
Nikolay Sivov 943fb2c071 dwrite: Scale strikethrough thickness and position with current font size.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-14 16:32:56 +09:00
Nikolay Sivov 261563f28e dwrite: Handle bitmap allocation error when rendering to bitmap target.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-14 16:32:52 +09:00
Nikolay Sivov 18b0ca3fe3 dwrite: Fix strikethrough baseline origin.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-13 16:05:02 +09:00
Nikolay Sivov 1a8e957b19 dwrite: Pass drawing effect to renderer in DrawStrikethrough().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-13 16:04:56 +09:00
Nikolay Sivov 2b5928b228 dwrite: Pass drawing effect to renderer in DrawGlyphRun().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-13 16:04:50 +09:00
Nikolay Sivov c0fb6f436b dwrite: Keep underlines in separate list.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-13 16:04:46 +09:00
Nikolay Sivov a4562cca50 dwrite: Start new effective run on strikethrough, underline or effect change.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-13 16:04:39 +09:00
Nikolay Sivov 0f67df657d dwrite: Fix a leak on error path.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-11 23:05:51 +09:00
Nikolay Sivov f6862b13b7 dwrite: Make position snapping more compact.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-11 23:05:49 +09:00
Nikolay Sivov 74f00fa17d dwrite: Consistently use explicit float literals.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-11 23:05:46 +09:00
Nikolay Sivov b1094bc7d7 dwrite: Store locale name in lower case for text format.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-09 17:30:03 +09:00
Nikolay Sivov f8a228d261 dwrite/tests: Some tests for drawing underlines.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-09 17:30:03 +09:00
Nikolay Sivov 57bfebfc80 dwrite: Implement EUDC font collection.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-29 17:11:51 +01:00
Nikolay Sivov ead6905ddb dwrite/tests: Some tests for SetUnderline().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-29 17:11:46 +01:00
Nikolay Sivov 8165cba0f8 dwrite/tests: Fix test failures on older versions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-29 17:11:42 +01:00
Nikolay Sivov b02e61c4b3 dwrite: Fix identical ranges merging.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-25 14:07:39 +01:00
Nikolay Sivov 3c16587ed4 dwrite: Locale layout ranged attribute is case-insensitive.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-25 14:07:37 +01:00
Nikolay Sivov 6ba2c25d45 dwrite: Store optical alignment property.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-25 14:07:35 +01:00
Nikolay Sivov 3905ed8c47 dwrite: Store last line wrapping property.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-25 14:07:33 +01:00
Nikolay Sivov 7a83be7bd2 dwrite: Optimize for the most common case of layout object initialization.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-25 14:07:30 +01:00
Nikolay Sivov e9d4725326 dwrite: Store per-range typography property.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-25 14:07:28 +01:00
Nikolay Sivov f845cca0dc dwrite/tests: One more test for duplicates in IDWriteTypography.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-25 14:07:21 +01:00
Nikolay Sivov 2bdf470177 dwrite/tests: Some tests for fallback builder.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-10 00:12:43 +09:00
Nikolay Sivov 55e53648b4 dwrite/tests: Some tests for MapCharacters().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-09 00:53:41 +09:00
Nikolay Sivov 19eaed6a38 dwrite: Return face count of 1 for CFF file type.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-18 00:29:49 +09:00
Nikolay Sivov 446fddb122 dwrite/tests: Remove unused assignment (Clang).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-12 11:29:22 +09:00
Nikolay Sivov c4b894db63 dwrite: Remove a couple of dead assignments (Clang).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-12 11:29:09 +09:00
Nikolay Sivov a5127f5fc5 dwrite/tests: Simple test to show that run analysis instances are not reused.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-04 14:41:40 +09:00
Nikolay Sivov b6f1e74ced dwrite: Apply run reading direction to advances and offsets on analysis creation.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-04 14:41:40 +09:00
Nikolay Sivov d3b6b437ed dwrite: When assembling run bitmap combine instead of overwriting.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-03 13:47:18 +09:00
Nikolay Sivov 170e31a8b2 dwrite: Added support for transform in glyph run analysis.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-03 00:33:27 +09:00
Nikolay Sivov 5da26de7c3 dwrite: Store origin, advances and offsets as vectors for run analysis.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-03 00:33:26 +09:00
Nikolay Sivov 6cc62d09bb dwrite: Store transform analysis was created with.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-03 00:33:26 +09:00
Nikolay Sivov 4afb30c544 dwrite/tests: Fixed some leaks (Valgrind).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-29 21:20:08 +09:00
Nikolay Sivov 9441b26dc5 dwrite: Fail earlier in TranslateColorGlyphRun() for fonts without color info.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-29 21:20:07 +09:00
Nikolay Sivov d829c50cbe dwrite: Fix streams and files pointer arrays leak (Valgrind).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-29 21:20:07 +09:00
Nikolay Sivov edea5fc342 dwrite: Fix analysis leak on error path.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-29 10:53:55 +09:00
Nikolay Sivov ad88407c93 dwrite/tests: Add missing return value test (PVS-Studio).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-28 12:45:03 +09:00
Nikolay Sivov ce6f6f7421 dwrite: Use dpiX/dpiY argument in GetRecommendedRenderingMode().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-28 12:45:03 +09:00
Nikolay Sivov 5e1c0315a1 dwrite/tests: Some tests for GetRecommendedRenderingMode() with different ppdip values.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-27 21:45:19 +09:00
Nikolay Sivov 08a3e4f29f dwrite: Respect transform when calculating glyph advances for run analysis.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-20 00:30:37 +09:00
Nikolay Sivov 9389bcdb51 dwrite: Set bitmap target ppdip factor from context dpi.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-20 00:30:37 +09:00
Nikolay Sivov d36a16ea10 dwrite: Scale run origin by given ppdip run analysis was created with.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-20 00:30:37 +09:00
Nikolay Sivov 2fdee67dd2 dwrite: Scale glyph run analysis advances and offsets with ppdip factor.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-20 00:30:37 +09:00
Nikolay Sivov a23b395e87 dwrite: Use given ppdip factor in GetAlphaTextureBounds().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-16 19:56:26 +09:00
Nikolay Sivov 83d484834d dwrite: Return strictly 0/1 for BOOL return type (PVS-Studio).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-13 22:20:47 +09:00
Nikolay Sivov 4b6a7e78e9 dwrite: Avoid HRESULT codes for BOOL retval methods (PVS-Studio).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-13 22:20:44 +09:00
Nikolay Sivov 925dc6da8f dwrite: Ignore embedded bitmaps when asked for outline.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-11 13:46:50 +09:00
Nikolay Sivov 819d36786e gdi32: Improve structure layout of data returned by GetFontRealizationInfo().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-09 13:00:32 +09:00
Nikolay Sivov f2b830ec76 dwrite: Properly implement CreateFontFaceFromHdc().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2015-10-06 22:19:53 +09:00
Nikolay Sivov e8c1cf4402 Update data tables to Unicode 8.0.0. 2015-10-02 15:37:05 +09:00
Nikolay Sivov 5cb954aa6a dwrite: Handle fonts with broken usWinDescent values. 2015-10-01 16:29:44 +09:00
Nikolay Sivov 20e6181304 dwrite: Print font table tag in string form in traces. 2015-09-15 22:51:03 +09:00