Commit Graph

244 Commits (master)

Author SHA1 Message Date
Nikolay Sivov 7a33f48ed2 dwrite: Use IDWriteFactory7 for layout internally.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-05 23:36:23 +01:00
Nikolay Sivov a49f56ef9b dwrite: Add support for IDWriteTextFormat3 for text layout object.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-29 17:51:18 +01:00
Nikolay Sivov 33a57f8d1d dwrite: Update to IDWriteTextLayout4.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-29 17:51:16 +01:00
Nikolay Sivov 3afa0d6346 dwrite: Add a stub for IDWriteTextFormat3.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-08 13:48:36 +02:00
Nikolay Sivov 1315098aef dwrite/layout: Use array allocation helper for line metrics.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 20:13:59 +02:00
Nikolay Sivov 45361bb65e dwrite/layout: Use interface pointer in text format method traces.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-13 13:46:19 +02:00
Nikolay Sivov 93a852e262 dwrite/layout: Fix layout metrics width for whitespace-only lines.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-13 13:46:05 +02:00
Nikolay Sivov cbd83b4e80 dwrite/layout: Use array allocation helper for typography features.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-13 13:45:56 +02:00
Nikolay Sivov a4b3420e67 dwrite/layout: Use a helper to update layout metrics.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-13 13:45:52 +02:00
Nikolay Sivov 571ffaf380 dwrite/layout: Fix invalid index access to cluster array.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45543
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-15 21:33:07 +02:00
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 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 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
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 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
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
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 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
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 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
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 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 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 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 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 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
Nikolay Sivov 3d7fabf627 dwrite: Fix off by one error in glyph count adjustment.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-30 22:06:32 +02:00
Nikolay Sivov 849b5dd96d dwrite: Set runHeight attribute for underlines.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-23 15:07:46 +01:00
Nikolay Sivov 9c238307cc dwrite: Get rid of assignment to self.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-03 19:05:10 +01:00
Nikolay Sivov cb0b088551 dwrite: Added support for uniform and proportional spacing methods.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-02 19:50:35 +01:00
Nikolay Sivov 3c494e82e3 dwrite: Keep content based line height and baseline separately.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-02 19:50:35 +01:00
Nikolay Sivov 76c31950fe dwrite: Added support for DWRITE_WORD_WRAPPING_CHARACTER mode.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-31 15:58:43 +01:00
André Hentschel e07e8293b9 dwrite: Remove dead initialization (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>
2017-01-31 08:52:02 +01:00
Nikolay Sivov 426a5d4a5f dwrite: Implement GetOverhangMetrics().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-27 16:31:41 +01:00
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 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 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 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