Ziqing Hui : d2d1: Implement d2d_effect_SetInput().
Module: wine Branch: master Commit: d5fb0dec564c6ddd2687e34f5010e36088ccdc9a URL: https://source.winehq.org/git/wine.git/?a=commit;h=d5fb0dec564c6ddd2687e34f5... Author: Ziqing Hui <zhui(a)codeweavers.com> Date: Sun Aug 8 12:40:35 2021 +0800 d2d1: Implement d2d_effect_SetInput(). Signed-off-by: Ziqing Hui <zhui(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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)
participants (1)
-
Alexandre Julliard