Commit Graph

900 Commits

Author SHA1 Message Date
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
Nikolay Sivov 37d10af966 dwrite/tests: Some tests for TranslateColorGlyphRun(). 2015-09-10 18:10:36 +09:00
Nikolay Sivov b55e599a4d dwrite: Implement GetFontCollection() for matching list. 2015-09-08 21:59:15 +09:00
Nikolay Sivov 9c19898217 dwrite: Implement GetFont() for matching list. 2015-09-08 21:59:15 +09:00
Nikolay Sivov 42a99a8de5 dwrite: Track face styles added to a family. 2015-09-08 21:59:15 +09:00
Nikolay Sivov 6dd9cdca4b dwrite: Return stub IDWriteFontList from GetMatchingFonts(). 2015-09-08 21:59:15 +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 b4ce95c1ab dwrite: Make sure same files are scanned once when building font collection. 2015-09-04 15:10:18 +09:00
Nikolay Sivov 30108c730e dwrite: Increase a number of allocated family slots for system collection. 2015-09-03 14:49:56 +09:00
Nikolay Sivov 7581b11d2b dwrite: Remove GetFaceNames() hack for simulated case. 2015-09-03 14:49:55 +09:00
Nikolay Sivov a10d75e597 dwrite: Add simulated oblique faces. 2015-09-03 14:49:53 +09:00
Nikolay Sivov e38d9bc68e dwrite: Add simulated bold faces for each family when appropriate. 2015-09-03 14:49:51 +09:00
Nikolay Sivov a22d5ed948 dwrite: Force reported English family/face names to resolved values. 2015-09-01 19:27:07 +09:00
Nikolay Sivov 9a6b0750c7 dwrite: Recognize semi light weight patterns. 2015-08-31 17:18:32 +09:00
Nikolay Sivov c0ab20caf9 dwrite: Implement family and face name resolution. 2015-08-31 17:18:31 +09:00
Francois Gouget f87491d5cd dwrite: Make opentype_get_font_strings_from_id() static. 2015-08-29 14:27:43 +09:00
Nikolay Sivov 26fbbdc48b dwrite: Implement grayscale rendering mode. 2015-08-27 21:43:46 +09:00
Nikolay Sivov 3f4a284f58 dwrite: Bitmap buffer is zeroed on allocation, no need to do it again. 2015-08-27 17:10:22 +09:00
Nikolay Sivov 2c4ba8a008 dwrite: Cleanup rendering interface with freetype. 2015-08-27 17:10:20 +09:00
Nikolay Sivov f52ef006cd dwrite: Use proper pixel format when accessing dib memory directly. 2015-08-24 18:41:35 +09:00
Nikolay Sivov b9f05239d2 dwrite: Return advances using freetype cache system. 2015-08-24 18:41:34 +09:00
Nikolay Sivov 4a1e6227ed dwrite: Handle QI failure (Coverity). 2015-08-24 08:23:09 +09:00
Nikolay Sivov 3ffe6ab0bb dwrite: Handle failure when getting texture bounds (Coverity). 2015-08-24 08:23:06 +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 1f54400bbf dwrite: Protect from space-only strings when trimming away spaces. 2015-08-19 20:19:56 +09:00
Nikolay Sivov 6b98b9ac70 dwrite: Extract and resolve font weight from name string. 2015-08-19 20:19:56 +09:00
Nikolay Sivov 4a399b7677 dwrite: Implement font stretch resolution. 2015-08-19 20:19:56 +09:00
Nikolay Sivov 5185906006 dwrite: Implement font style resolution from name strings. 2015-08-18 14:30:37 +09:00
Nikolay Sivov 433b7c04c7 dwrite: Use aliased outline threshold for GDI target. 2015-08-17 14:52:22 +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 2ac68e91a4 dwrite: Improve face name extraction. 2015-08-13 15:04:14 +09:00
Nikolay Sivov fb013d7acd dwrite: Fix family name extraction order. 2015-08-13 15:04:12 +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 785c592ada dwrite: Improve the way font weight is set with both OS/2 and 'head' values. 2015-08-12 22:53:02 +09:00
Nikolay Sivov 123c7cde07 dwrite: Set font stretch from 'head' table as a fallback. 2015-08-12 22:53:00 +09:00
Nikolay Sivov 4b4674bea8 dwrite: Use OS/2 table data to set font style, make it preferable. 2015-08-12 22:52:57 +09:00
Nikolay Sivov c7d1b91154 dwrite: Fix font table tag tracing. 2015-08-12 22:52:55 +09:00
Nikolay Sivov e1f353663a dwrite: Fix IsColorFont() return type for IDWriteFont2. 2015-08-07 14:18:03 +09:00
Nikolay Sivov 93d24de308 dwrite: Added IDWriteColorGlyphRunEnumerator stub. 2015-08-07 14:18:01 +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 5734c2ed98 dwrite: Implement GetPaletteEntryCount(). 2015-08-07 14:17:53 +09:00
Nikolay Sivov 20571725f3 dwrite: Implement GetColorPaletteCount(). 2015-08-07 14:17:51 +09:00
Nikolay Sivov 14e4996f6c dwrite: Implement CreateGlyphRunAnalysis() from IDWriteFactory2. 2015-08-07 14:17:48 +09:00
Nikolay Sivov 8133684816 dwrite: Use right charmap for symbol encoding. 2015-08-07 00:05:06 +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 6597453403 dwrite: Release run info as soon as it's rendered to save some memory. 2015-08-04 12:21:59 +02:00
Nikolay Sivov 720c430594 dwrite: Advances and offsets are optional for IDWriteGlyphRunAnalysis. 2015-08-04 12:21:58 +02:00
Nikolay Sivov dc75b34ddf dwrite: Fix outline translation before rendering. 2015-08-03 10:58:06 +02:00
Nikolay Sivov 44c301c584 dwrite: Implement DrawGlyphRun(). 2015-07-31 12:07:28 +02:00
Nikolay Sivov e08b77b0a9 dwrite: Implement CreateAlphaTexture(). 2015-07-31 12:07:26 +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 fb35557db9 dwrite: Store run info for IDWriteGlyphRunAnalysis instance. 2015-07-29 20:57:02 +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 a66ba8957e dwrite: Bitmap render target uses top-down DIB. 2015-07-22 15:15:58 +02:00
André Hentschel b4b65d8284 dwrite: Remove unused initializer (Clang). 2015-07-22 07:24:35 +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 42ed6ddd30 dwrite: Fix vector transformation in GetGlyphOrientationTransform(). 2015-07-16 19:22:39 +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 a3f2b6b856 dwrite: Partial implementation of GetGdiCompatibleGlyphMetrics(). 2015-07-16 16:29:46 +09:00
Nikolay Sivov e94d977006 dwrite: Partially implement GetGdiCompatibleGlyphAdvances(). 2015-07-15 23:19:13 +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 0b64f24030 dwrite: Make sure explicit levels are always initialized (Valgrind). 2015-07-14 17:07:43 +09:00
Nikolay Sivov 2b59cf84be dwrite: Fix EndFigure notification in GetGlyphRunOutline(). 2015-07-13 14:45:18 +09:00
Nikolay Sivov fda08897e4 dwrite: Remove excessive tracing when forwarding to IDWriteTextFormat1. 2015-07-13 14:45:16 +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
Nikolay Sivov 2f79a876f9 dwrite: Implement SetWordWrapping() for layout. 2015-07-13 14:45:11 +09:00
Nikolay Sivov cf5d9848d8 dwrite: Check GetGdiCompatibleMetrics() return value (Coverity). 2015-07-13 14:45:08 +09:00
Nikolay Sivov 66efbbbae2 dwrite: Implement pixel snapping in Draw(). 2015-07-13 14:44:59 +09:00
Sebastian Lackner 402caa632b dwrite: Avoid dereferencing NULL pointer for fonts without VDMX. 2015-07-13 14:44:49 +09:00
Nikolay Sivov 0dcc9ead9e dwrite: Properly set run origin in DWRITE_READING_DIRECTION_RIGHT_TO_LEFT case. 2015-07-09 23:17:44 +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 849bb99b76 dwrite: Implement GetGdiCompatibleMetrics(). 2015-07-08 19:12:12 +09:00
Bernhard Übelacker 119501fee8 dwrite: Call RegEnumValueW with value and val_count parameters. 2015-07-08 16:02:24 +09:00
Nikolay Sivov 9375b06c3a dwrite/tests: Extend GetGdiCompatibleMetrics() test to test DWRITE_FONT_METRICS1 as well. 2015-07-07 16:52:21 +09:00
Nikolay Sivov 50bf5fca34 dwrite: Implement GetPanose(). 2015-07-07 16:52:21 +09:00
Nikolay Sivov bb0c6f74a5 dwrite: Implement centered text alignment. 2015-07-07 16:52:20 +09:00
Nikolay Sivov f039e15182 dwrite: Remove a couple of useless checks. 2015-07-07 16:52:20 +09:00
Huw Davies bbf5b249ca dwrite/tests: Add tests for GetGdiCompatibleMetrics. 2015-07-06 17:09:48 +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 7a64715be3 dwrite: Remove separate line count layout field. 2015-07-06 15:13:14 +09:00
Nikolay Sivov 8b566b1da7 dwrite: Reset calculated text height before updating it. 2015-07-03 22:58:07 +09:00
Nikolay Sivov ed54767030 dwrite: Store layout width/height directly in metrics structure. 2015-07-03 22:58:05 +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 9c54176f5c dwrite: Fix number of clusters effective run is built on. 2015-06-29 21:13:21 +09:00
Nikolay Sivov 3976cc459d dwrite: Update current line count when adding metrics for new line. 2015-06-29 21:13:14 +09:00
Nikolay Sivov 9148e87291 dwrite: Fix clustermap shifting for effective run. 2015-06-26 20:35:07 +09:00
Nikolay Sivov 872e569744 dwrite: Properly reduce glyph count of effective run. 2015-06-26 20:35:07 +09:00
Nikolay Sivov 69d5e351f9 dwrite: Call SetFillMode() once per run. 2015-06-23 15:08:11 +09:00
Nikolay Sivov 643125e50f dwrite: Set baseline origin Y for reported runs. 2015-06-23 15:08:09 +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 86a7f329be dwrite: Forward GetRecommendedRenderingMode() to newer method. 2015-06-22 19:16:49 +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 5df702af9e dwrite/tests: Initial test for GetBaseline(). 2015-06-18 21:41:02 +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 6655b0c93a dwrite: Call GetCount() once when looking for family name. 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 eca362bd76 dwrite: Fix problems with outline conversion and reporting. 2015-06-10 15:26:10 +09:00
Alexandre Julliard 3494fb7f72 kernel32: Avoid resolving imports against the advapi32 forwards. 2015-06-10 15:26:05 +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 e31881a6c9 dwrite: Store strikethrough settings in a separate list. 2015-06-05 18:38:32 +09:00
Nikolay Sivov 6d87a451a2 dwrite: Added a range data header to distinguish range kinds. 2015-06-05 18:38:29 +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 6f99f196fc dwrite: Fix potential null pointer access in GetFontCollection() (Coverity). 2015-06-04 15:55:29 +09:00
Nikolay Sivov 9351596538 dwrite: Fix potential null pointer dereference in GetInlineObject() (Coverity). 2015-06-02 20:53:43 +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 fe2f6b77a8 dwrite: Properly report drawing effect in DrawGlyphRun()/DrawInlineObject(). 2015-06-01 14:48:25 +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 a921941a17 dwrite: Implement GetGlyphOrientationTransform(). 2015-05-29 15:00:03 +09:00
Nikolay Sivov 39d71c52ef dwrite/tests: Some tests for control characters handling. 2015-05-27 19:35:00 +09:00
Nikolay Sivov 76577c8e4b dwrite: Fix breakpoint update logic. 2015-05-25 21:43:17 +09:00
Nikolay Sivov 90ed96a766 dwrite: Fix splitting by bidi levels. 2015-05-22 18:04:45 +09:00
Nikolay Sivov f4790714fe dwrite: Added IDWriteGlyphRunAnalysis stub. 2015-05-19 22:57:43 +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 4fa8d3a444 dwrite: Improve run tracing format. 2015-05-01 17:39:22 +09:00
Nikolay Sivov 1d815a2801 dwrite: Fix typo in SetStrikethrough(). 2015-05-01 17:39:20 +09:00
Nikolay Sivov 14158a71db dwrite: Implement ApplyCharacterSpacing(). 2015-04-27 15:10:29 +09:00
Nikolay Sivov a457b5e069 dwrite: Trace text strings up to specified length. 2015-04-23 20:43:20 +09:00
Nikolay Sivov d7a40fd298 dwrite: Track a run this cluster came from. 2015-04-23 20:43:20 +09:00
Nikolay Sivov 68edc995c5 dwrite: Set some more cluster properties. 2015-04-23 20:43:20 +09:00
Nikolay Sivov 0c27e5cd66 dwrite: Fix script position reported with SetScriptAnalysis(). 2015-04-21 23:45:00 +09:00
Nikolay Sivov e0403efc21 dwrite: Added a helper to get source text pointer. 2015-04-21 23:44:59 +09:00
Julius Schwartzenberg 20aee0673d dwrite: Font search is case insensitive. 2015-04-13 15:49:38 +09:00
Nikolay Sivov 551f0a157f dwrite: Return S_OK from AnalyzeNumberSubstitution(). 2015-04-07 15:10:38 +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 7b664095aa dwrite: Update to IDWriteRenderingParams2. 2015-03-31 21:36:28 +09:00
Nikolay Sivov 9ec6fd85c4 dwrite: Return CreateStreamFromKey() failure code from Analyze(). 2015-03-30 19:10:31 +09:00
Nikolay Sivov 8303199cbe dwrite: Initial implementation of DetermineMinWidth(). 2015-03-30 19:10:27 +09:00
Nikolay Sivov 93a21a8b57 dwrite: Pass sideways run flag to shaping methods. 2015-03-27 00:12:07 +09:00
Nikolay Sivov 437fb07438 dwrite: Forward IDWriteTextLayout::GetMetrics() to IDWriteTextLayout2::GetMetrics(). 2015-03-24 18:16:42 +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 da1d6097ed dwrite: Remove unused helper. 2015-03-18 19:36:39 +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 7e480d3c6d dwrite: Implement GetKerningPairAdjustments(). 2015-03-16 21:42:40 +09:00
Nikolay Sivov 23c2ef2fcd dwrite: Implement HasKerningPairs(). 2015-03-16 21:42:40 +09:00
Nikolay Sivov 2933e8666f dwrite: Fix invalid parameter handling in GetGlyphIndices(). 2015-03-16 21:42:39 +09:00
Nikolay Sivov 5eccb1322d dwrite: Actually return NULL names pointer and error code when failed to read them. 2015-03-16 21:42:39 +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 c1ecf862a4 dwrite: Make a deep copy of family name string (Valgrind). 2015-03-12 13:56:28 +09:00
Nikolay Sivov 3cfbfeca2b dwrite/tests: Place test font file in temporary location, make sure it's deleted after the test. 2015-02-24 14:17:01 +09:00
Nikolay Sivov eb2a4ec5f4 dwrite/tests: Test default colors of render target memory HDC. 2015-02-23 15:26:03 +09:00
Nikolay Sivov 0067be66bb dwrite/tests: Fixed font instance leak. 2015-02-23 15:26:02 +09:00
Nikolay Sivov 6ff14a9213 dwrite: Use FreeType CMAP cache system instead of parsing tables manually. 2015-02-23 15:26:02 +09:00
Nikolay Sivov 5a318c3e8b dwrite: Set facename field of a LOGFONT in ConvertFontFaceToLOGFONT(). 2015-02-19 17:50:56 +09:00
Nikolay Sivov 5196be7706 dwrite: Fix error code returned by GetFontFromFontFace(). 2015-02-19 17:50:51 +09:00
Nikolay Sivov 980c65f126 dwrite: Use vertical variants in GetGlyphs() when appropriate. 2015-02-18 23:22:19 +09:00
Nikolay Sivov c949ff5d24 dwrite: Implement GetGlyphCount(). 2015-02-05 22:19:06 +09:00
Nikolay Sivov 34a5cd2086 dwrite/tests: Fix couple of leaks when creating test font instance. 2015-02-04 21:42:39 +09:00
Nikolay Sivov afd1911cd7 dwrite: Improve error handling during font collection creation. 2015-02-04 21:42:35 +09:00
Nikolay Sivov 77189de8b7 dwrite: Simplify collection_find_family(). 2015-02-04 21:42:11 +09:00
Nikolay Sivov 8f9bca9103 dwrite: Implement GetCaretMetrics(). 2015-02-03 20:53:07 +09:00
Nikolay Sivov fbeb829584 dwrite: Forward GetGdiCompatibleMetrics() to newer call. 2015-02-03 20:52:58 +09:00
Nikolay Sivov 40d9a2b6d2 dwrite: Make sure we don't have duplicates in locale/value pairs for font names. 2015-01-26 12:06:20 +01:00
Nikolay Sivov 6b0623fb2f dwrite: Initial implementation of GetTypographicFeatures(). 2015-01-26 12:06:18 +01:00
Nikolay Sivov 711b9f0414 dwrite: Initial implementation of GetGlyphPlacements(). 2015-01-22 13:42:34 +01:00
Nikolay Sivov 0258e5319b dwrite/tests: Basic test for GetTypographicFeatures(). 2015-01-21 15:29:17 +01:00
Nikolay Sivov aef50786fb dwrite/tests: Additional test for Draw(). 2015-01-20 17:52:20 +01:00
Nikolay Sivov e292385fcd dwrite: Implement GetClusterMetrics(). 2015-01-20 17:52:18 +01:00
Nikolay Sivov 0ee49eb4c8 dwrite: Initial support of cluster metrics computation. 2015-01-20 17:52:16 +01:00
Nikolay Sivov 13083dcd52 dwrite: Use gdi-compatible placements in case of gdi-compatible layouts. 2015-01-09 11:50:22 +01:00
Nikolay Sivov 05fd95e5e4 dwrite: Store additional properties for gdi-compatible layouts. 2015-01-09 11:50:20 +01:00
Nikolay Sivov b03d4c7a8f dwrite: Set glyph advances and offsets for each run. 2015-01-08 13:12:18 +01:00
Nikolay Sivov b49a71416d dwrite: Store cluster map and glyph indices for each run. 2015-01-08 13:12:16 +01:00
Nikolay Sivov fdd8e011ed dwrite: Create fontface instance for each run. 2015-01-07 17:39:03 +01:00
Nikolay Sivov de09e9b94e dwrite/tests: Fix buffer overflow when filling test string. 2015-01-06 18:19:31 +01:00
Nikolay Sivov 35a91741d3 dwrite: Move range bounds check to an attribute setting helper. 2015-01-06 12:34:46 +01:00
Nikolay Sivov 48d84eedb5 dwrite: Unify temp value variable name. 2015-01-06 12:34:41 +01:00
Nikolay Sivov 9661f129e0 dwrite: Support family name attribute for ranges. 2015-01-06 12:34:37 +01:00
Nikolay Sivov ed398419bc dwrite: Fix range comparison by locale name. 2015-01-06 12:34:30 +01:00
Nikolay Sivov 102d8936cc dwrite: Release FreeType resources on dll unload. 2015-01-05 21:37:37 +01:00
Francois Gouget 3b87dbe062 dwrite: Make free_glyph_outline() static. 2015-01-05 20:17:22 +01:00
Nikolay Sivov aecec3847a dwrite: Store locale name for each text range. 2015-01-05 16:29:11 +01:00
Nikolay Sivov 8fc7e175dc dwrite: Set string pointer in run description when splitting by bidi levels. 2014-12-30 15:54:18 +01:00