Ziqing Hui : d2d1: Implement d2d_effect_SetInput().

Alexandre Julliard julliard at winehq.org
Mon Aug 9 16:21:43 CDT 2021


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

Author: Ziqing Hui <zhui at codeweavers.com>
Date:   Sun Aug  8 12:40:35 2021 +0800

d2d1: Implement d2d_effect_SetInput().

Signed-off-by: Ziqing Hui <zhui at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/d2d1/effect.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/dlls/d2d1/effect.c b/dlls/d2d1/effect.c
index c884c3b8d4f..951ad9c5101 100644
--- a/dlls/d2d1/effect.c
+++ b/dlls/d2d1/effect.c
@@ -40,6 +40,13 @@ static inline struct d2d_effect *impl_from_ID2D1Effect(ID2D1Effect *iface)
 
 static void d2d_effect_cleanup(struct d2d_effect *effect)
 {
+    unsigned int i;
+
+    for (i = 0; i < effect->input_count; ++i)
+    {
+        if (effect->inputs[i])
+            ID2D1Image_Release(effect->inputs[i]);
+    }
     heap_free(effect->inputs);
     ID2D1Factory_Release(effect->factory);
 }
@@ -185,7 +192,17 @@ static HRESULT STDMETHODCALLTYPE d2d_effect_GetSubProperties(ID2D1Effect *iface,
 
 static void STDMETHODCALLTYPE d2d_effect_SetInput(ID2D1Effect *iface, UINT32 index, ID2D1Image *input, BOOL invalidate)
 {
-    FIXME("iface %p, index %u, input %p, invalidate %d stub!\n", iface, index, input, invalidate);
+    struct d2d_effect *effect = impl_from_ID2D1Effect(iface);
+
+    TRACE("iface %p, index %u, input %p, invalidate %#x.\n", iface, index, input, invalidate);
+
+    if (index >= effect->input_count)
+        return;
+
+    ID2D1Image_AddRef(input);
+    if (effect->inputs[index])
+        ID2D1Image_Release(effect->inputs[index]);
+    effect->inputs[index] = input;
 }
 
 static HRESULT STDMETHODCALLTYPE d2d_effect_SetInputCount(ID2D1Effect *iface, UINT32 count)




More information about the wine-cvs mailing list