Nikolay Sivov : dwrite: Properly report drawing effect in DrawGlyphRun()/ DrawInlineObject().

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jun 1 07:36:59 CDT 2015


Module: wine
Branch: master
Commit: fe2f6b77a84f6133bf406a2acdf1cf2bd5be47c9
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=fe2f6b77a84f6133bf406a2acdf1cf2bd5be47c9

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Sun May 31 00:01:45 2015 +0300

dwrite: Properly report drawing effect in DrawGlyphRun()/DrawInlineObject().

---

 dlls/dwrite/layout.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c
index 137f65a..88d33a3 100644
--- a/dlls/dwrite/layout.c
+++ b/dlls/dwrite/layout.c
@@ -139,6 +139,7 @@ struct layout_run {
         struct inline_object_run object;
         struct regular_layout_run regular;
     } u;
+    IUnknown *effect;
 };
 
 struct layout_effective_run {
@@ -556,6 +557,7 @@ static HRESULT layout_compute_runs(struct dwrite_textlayout *layout)
 
             r->u.object.object = range->object;
             r->u.object.length = range->range.length;
+            r->effect = range->effect;
             list_add_tail(&layout->runs, &r->entry);
             continue;
         }
@@ -615,6 +617,7 @@ static HRESULT layout_compute_runs(struct dwrite_textlayout *layout)
         }
 
         range = get_layout_range_by_pos(layout, run->descr.textPosition);
+        r->effect = range->effect;
 
         hr = IDWriteFontCollection_FindFamilyName(range->collection, range->fontfamily, &index, &exists);
         if (FAILED(hr) || !exists) {
@@ -2091,7 +2094,7 @@ static HRESULT WINAPI dwritetextlayout_Draw(IDWriteTextLayout2 *iface,
             DWRITE_MEASURING_MODE_NATURAL,
             &glyph_run,
             &descr,
-            NULL /* FIXME */);
+            run->run->effect);
     }
 
     /* 2. Inline objects */
@@ -2103,7 +2106,7 @@ static HRESULT WINAPI dwritetextlayout_Draw(IDWriteTextLayout2 *iface,
             inlineobject->object,
             inlineobject->is_sideways,
             inlineobject->is_rtl,
-            NULL /* FIXME */);
+            run->run->effect);
     }
 
     /* TODO: 3. Underlines */




More information about the wine-cvs mailing list