Commit Graph

169 Commits

Author SHA1 Message Date
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 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 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 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 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 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 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 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 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 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 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 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 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 8dd0738b1c dwrite/tests: Fix layout test failure on Win10. 2015-08-21 14:33:31 +09:00
Nikolay Sivov 491e84a771 dwrite/tests: Some tests for isNewline clusters. 2015-07-20 20:56:04 +02:00
Nikolay Sivov c8b0c80365 dwrite: Round centered alignment shift for compatible layouts. 2015-07-20 20:56:04 +02:00
Nikolay Sivov a92390f707 dwrite/tests: Some tests for CreateGdiCompatibleTextLayout(). 2015-07-16 19:22:35 +09:00
Nikolay Sivov e68c6389b1 dwrite: Properly pass measuring mode to renderer. 2015-07-16 19:22:33 +09:00
Nikolay Sivov f46aa66ca7 dwrite: Fix transform matrix usage for pixel snapping. 2015-07-15 16:56:53 +09:00
Nikolay Sivov a32168bc49 dwrite/tests: Fix trimming sign instance leak (Valgrind). 2015-07-14 17:07:46 +09:00
Nikolay Sivov 04ae4bfb2c dwrite: Implement GetMetrics() for trimming sign. 2015-07-13 14:45:15 +09:00
Nikolay Sivov 2f79a876f9 dwrite: Implement SetWordWrapping() for layout. 2015-07-13 14:45:11 +09:00
Nikolay Sivov 66efbbbae2 dwrite: Implement pixel snapping in Draw(). 2015-07-13 14:44:59 +09:00
Nikolay Sivov 8201fa14c9 dwrite: Fix alignment shifts in RTL case. 2015-07-09 23:17:44 +09:00
Nikolay Sivov 6d52bc59c0 dwrite: Implement SetReadingDirection() for layout. 2015-07-09 23:17:44 +09:00
Nikolay Sivov bb0c6f74a5 dwrite: Implement centered text alignment. 2015-07-07 16:52:20 +09:00
Nikolay Sivov b49f9f609a dwrite/tests: Test that pair kerning affects shaping. 2015-07-06 15:13:22 +09:00
Nikolay Sivov 862ac80a0d dwrite: Implement paragraph alignment. 2015-07-06 15:13:20 +09:00
Nikolay Sivov 44c135dd17 dwrite: Implement leading and trailing text alignment modes. 2015-07-06 15:13:18 +09:00
Nikolay Sivov de46f610fe dwrite: Make it possible to set text alignment on created layout. 2015-07-06 15:13:16 +09:00
Nikolay Sivov d86f2af3b6 dwrite: Add last cluster width to line width. 2015-07-02 13:43:00 +09:00
Nikolay Sivov a940c9b970 dwrite: Initial layout GetMetrics() implementation. 2015-07-02 13:42:58 +09:00
Nikolay Sivov e27a13e3a2 dwrite: Always set canWrapLineAfter for last cluster. 2015-06-29 21:13:29 +09:00
Nikolay Sivov 1002119a60 dwrite: Clip range length to text length when updating breakpoints. 2015-06-29 21:13:25 +09:00
Nikolay Sivov 88663caf74 dwrite/tests: Show that line baseline is relative to this line. 2015-06-23 15:08:07 +09:00
Nikolay Sivov 8adc6679e9 dwrite: Set line baseline/height from font metrics. 2015-06-23 15:08:05 +09:00
Nikolay Sivov b43850a363 dwrite: Store character spacing layout settings. 2015-06-22 19:17:35 +09:00
Nikolay Sivov b4592cbc7c dwrite: Count last cluster length too when building a line. 2015-06-19 17:01:17 +09:00
Nikolay Sivov e8c4951a2a dwrite: Actually set isWhitespace for space clusters. 2015-06-19 17:01:15 +09:00
Nikolay Sivov f68f63152f dwrite: Set cluster length together with other metrics. 2015-06-19 17:01:12 +09:00
Nikolay Sivov 0b84556f8d dwrite/tests: Initial test for GetLineMetrics(). 2015-06-18 21:41:02 +09:00
Nikolay Sivov 0ec13316a7 dwrite: Validate format property values. 2015-06-16 16:50:22 +09:00
Nikolay Sivov b7fb00e9aa dwrite: Fix the way drawing effects are reported for inline objects. 2015-06-15 15:29:04 +09:00
Nikolay Sivov 6fd4f963f6 dwrite: Initial implementation of Draw() for trimming sign. 2015-06-15 15:29:03 +09:00
Nikolay Sivov 6304a0f50a dwrite: Check format directions in CreateEllipsisTrimmingSign(). 2015-06-15 15:29:03 +09:00
Nikolay Sivov de2ae5e1b8 dwrite: Fix splitted range length, initial test for GetMetrics(). 2015-06-15 15:29:03 +09:00
Nikolay Sivov 4addd20aaa dwrite/tests: Test to show that GetCurrentTransform/GetPixelsPerDip are not really used from Draw(). 2015-06-15 15:29:03 +09:00
Nikolay Sivov 1a2d520ee1 dwrite: Exit earlier when setting property for zero length range. 2015-06-09 22:09:57 +09:00
Nikolay Sivov ffeba2348a dwrite: Use [0,~0u) as initial range for strikethrough settings. 2015-06-09 22:09:57 +09:00
Nikolay Sivov 9d74a11efb dwrite/tests: A test for case-sensitivity of SetFontFamilyName. 2015-06-09 22:09:57 +09:00
Nikolay Sivov 7be1159479 dwrite: Validate per-range attribute values. 2015-06-08 15:47:41 +09:00
Nikolay Sivov 496aec11e5 dwrite: Use [0,~0u) as initial text range. 2015-06-08 15:47:39 +09:00
Nikolay Sivov fc3ec14404 dwrite/tests: Some tests for setting per-range layout properties. 2015-06-05 18:38:43 +09:00
Nikolay Sivov b8e3fbe0c1 dwrite: Report strikethrough ranges to renderer. 2015-06-05 18:38:38 +09:00
Nikolay Sivov 72dcc4d437 dwrite/tests: Test actual strings being reported to a renderer. 2015-06-05 18:38:26 +09:00
Nikolay Sivov c230b32777 dwrite: Handle GetBreakConditions() failure. 2015-06-01 14:48:33 +09:00
Nikolay Sivov 10ff42097f dwrite: Handle inline object GetMetrics() failure. 2015-06-01 14:48:29 +09:00
Nikolay Sivov 89e1a5fb75 dwrite: Fix wrong run data reported to a renderer. 2015-06-01 14:48:21 +09:00
Nikolay Sivov 2099b109ea dwrite: Report inline objects in Draw(). 2015-06-01 14:48:15 +09:00
Nikolay Sivov 112d20e89c dwrite: Forward GetGdiCompatibleGlyphPlacements() to corresponding font methods. 2015-06-01 14:48:08 +09:00
Nikolay Sivov 39d71c52ef dwrite/tests: Some tests for control characters handling. 2015-05-27 19:35:00 +09:00
Nikolay Sivov 38775875c7 dwrite: Initial implementation of Draw(). 2015-05-05 23:15:30 +09:00
Nikolay Sivov 47224510b4 dwrite/tests: Test character spacing applied to cluster metrics. 2015-05-04 20:10:48 +09:00
Nikolay Sivov b16432f2c2 dwrite: Add cluster metrics entry for inline objects too. 2015-04-06 12:09:03 +09:00
Nikolay Sivov 0c116d7736 dwrite: Fix cluster width and length calculation. 2015-04-03 20:51:46 +09:00
Nikolay Sivov 8303199cbe dwrite: Initial implementation of DetermineMinWidth(). 2015-03-30 19:10:27 +09:00
Nikolay Sivov b58528fa49 dwrite/tests: Another test for cluster metrics and inline objects. 2015-03-18 19:36:43 +09:00
Nikolay Sivov fa1fe44c34 dwrite: Implement SetFontFallback(). 2015-03-17 14:19:42 +09:00
Nikolay Sivov c2c3001387 dwrite: Allow to query for IDWriteTextFormat1 from layout. 2015-03-17 14:19:36 +09:00
Nikolay Sivov bd3069c0c1 dwrite/tests: Use separate factory for each test in layout tests. 2015-03-17 14:19:30 +09:00
Nikolay Sivov 947f8e64d5 dwrite: Initially format and layout don't have a fallback set. 2015-03-17 14:19:22 +09:00
Nikolay Sivov e6ce0e9f26 dwrite: Fix GetClusterMetrics() return value. 2015-03-13 21:57:29 +09:00
Nikolay Sivov 8a46a01008 dwrite: Store vertical orientation property. 2015-03-13 21:57:28 +09:00
Nikolay Sivov 672aae654e dwrite: Store pair kerning range attribute. 2015-03-13 21:57:28 +09:00
Nikolay Sivov 985bff76be dwrite: Fix excessive refcount increment when setting interface pointers as range attributes. 2015-03-12 13:56:35 +09:00
Nikolay Sivov 711b9f0414 dwrite: Initial implementation of GetGlyphPlacements(). 2015-01-22 13:42:34 +01:00
Nikolay Sivov aef50786fb dwrite/tests: Additional test for Draw(). 2015-01-20 17:52:20 +01:00
Nikolay Sivov de09e9b94e dwrite/tests: Fix buffer overflow when filling test string. 2015-01-06 18:19:31 +01:00
Nikolay Sivov aecec3847a dwrite: Store locale name for each text range. 2015-01-05 16:29:11 +01:00
Nikolay Sivov 894737ac55 dwrite: Split each text range into runs by script. 2014-12-23 15:31:10 +01:00
Nikolay Sivov 49c8e98f74 dwrite: Respond to IID_IDWriteTextLayout1 too. 2014-11-07 20:57:03 +09:00
Nikolay Sivov 617f668f49 dwrite: Block negative max height/width for layout. 2014-10-15 21:31:58 +09:00
Nikolay Sivov c27af4774e widl: Generate method macros/wrappers for overridden methods. 2014-10-14 14:15:30 +09:00