Commit Graph

363 Commits

Author SHA1 Message Date
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 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 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
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 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 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 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
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 37d10af966 dwrite/tests: Some tests for TranslateColorGlyphRun(). 2015-09-10 18:10:36 +09:00
Nikolay Sivov 8747fa2b9f dwrite/tests: Fix some test failures on Win10. 2015-09-04 18:18:31 +09:00
Nikolay Sivov fe848b26c7 dwrite: Make CreateFontFace() fail with DWRITE_E_FILEFORMAT for supported types in case of type mismatch. 2015-09-04 18:18:29 +09:00
Nikolay Sivov b9f05239d2 dwrite: Return advances using freetype cache system. 2015-08-24 18:41:34 +09:00
Nikolay Sivov 4c12157c34 dwrite/tests: Fix analyzer test failures on Win10. 2015-08-21 14:33:33 +09:00
Nikolay Sivov 8dd0738b1c dwrite/tests: Fix layout test failure on Win10. 2015-08-21 14:33:31 +09:00
Nikolay Sivov 204d46c674 dwrite: Implement outline mode for DrawGlyphRun(). 2015-08-17 14:52:20 +09:00
Nikolay Sivov 22a65466b3 dwrite/tests: Some tests for target hdc mode/transform. 2015-08-13 15:04:16 +09:00
Nikolay Sivov f5f025f1dd dwrite: Use better font matching algorithm based on weight/stretch/style triples. 2015-08-12 22:53:04 +09:00
Nikolay Sivov fd35a1af6a dwrite: Implement GetPaletteEntries(). 2015-08-07 14:17:58 +09:00
Nikolay Sivov 4df29eb02f dwrite/tests: Basic test for GetPaletteEntries(). 2015-08-07 14:17:56 +09:00
Nikolay Sivov ab7c65ae43 dwrite: Implement IsSymbolFont(). 2015-08-07 00:05:04 +09:00
Nikolay Sivov 7540fa5a1a dwrite: Properly initialize LOGFONT returned from ConvertFontToLOGFONT(). 2015-08-07 00:05:01 +09:00
Nikolay Sivov 720c430594 dwrite: Advances and offsets are optional for IDWriteGlyphRunAnalysis. 2015-08-04 12:21:58 +02:00
Nikolay Sivov 6d1f47902b dwrite: Translate rendered bitmap bounds to given origin. 2015-07-31 12:07:23 +02:00
Nikolay Sivov 5137aaa9c9 dwrite: Implement parameter validation for CreateAlphaTexture(). 2015-07-29 21:44:01 +02:00
Nikolay Sivov b50416aa5f dwrite: Implement GetAlphaTextureBounds(). 2015-07-29 21:44:01 +02:00
Nikolay Sivov 2c6eca8682 dwrite: Implement GetAlphaBlendParams(). 2015-07-29 20:57:04 +02:00
Nikolay Sivov e877cfbcfa dwrite: Implement GetRecommendedRenderingMode(). 2015-07-28 13:41:45 +02:00
Nikolay Sivov aac3a069e4 dwrite/tests: Some tests for GetRecommendedRenderingMode(). 2015-07-28 13:41:45 +02:00
Nikolay Sivov 5178c8b111 dwrite: Update cached bitmap size on Resize() as well. 2015-07-22 15:16:05 +02: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 a718a9a5ca dwrite/tests: Some tests for bounds returned by GetAlphaTextureBounds(). 2015-07-20 20:56:04 +02:00
Nikolay Sivov 5231715d31 dwrite: Improve parameter validation in GetGdiCompatibleGlyphAdvances(), add some tests. 2015-07-20 20:56:04 +02:00
Nikolay Sivov 2655ac5f93 dwrite: Aliased texture could only be requested for aliased rendering mode. 2015-07-17 19:28:04 +09:00
Nikolay Sivov 2132a060ea dwrite: Round advances returned from GetGdiCompatibleGlyphPlacements(). 2015-07-16 19:22:37 +09: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 e6d5c03fde dwrite: Handle negative emsize in GetGdiCompatibleMetrics(). 2015-07-13 14:45:13 +09:00