diff --git a/dlls/d2d1/effect.c b/dlls/d2d1/effect.c index 951ad9c5101..560d87479a9 100644 --- a/dlls/d2d1/effect.c +++ b/dlls/d2d1/effect.c @@ -214,7 +214,14 @@ static HRESULT STDMETHODCALLTYPE d2d_effect_SetInputCount(ID2D1Effect *iface, UI static void STDMETHODCALLTYPE d2d_effect_GetInput(ID2D1Effect *iface, UINT32 index, ID2D1Image **input) { - FIXME("iface %p, index %u, input %p stub!\n", iface, index, input); + struct d2d_effect *effect = impl_from_ID2D1Effect(iface); + + TRACE("iface %p, index %u, input %p.\n", iface, index, input); + + if (index < effect->input_count && effect->inputs[index]) + ID2D1Image_AddRef(*input = effect->inputs[index]); + else + *input = NULL; } static UINT32 STDMETHODCALLTYPE d2d_effect_GetInputCount(ID2D1Effect *iface) diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c index 36882dc4918..a6f7ac88d0d 100644 --- a/dlls/d2d1/tests/d2d1.c +++ b/dlls/d2d1/tests/d2d1.c @@ -9824,7 +9824,6 @@ static void test_effect(BOOL d3d11) { winetest_push_context("Input %u", j); ID2D1Effect_GetInput(effect, j, &image_a); - todo_wine ok(image_a == NULL, "Got unexpected image_a %p.\n", image_a); winetest_pop_context(); } @@ -9845,14 +9844,11 @@ static void test_effect(BOOL d3d11) ID2D1Effect_GetInput(effect, j, &image_a); if (j == 0) { - todo_wine ok(image_a == (ID2D1Image *)bitmap, "Got unexpected image_a %p.\n", image_a); - if (image_a == (ID2D1Image *)bitmap) - ID2D1Image_Release(image_a); + ID2D1Image_Release(image_a); } else { - todo_wine ok(image_a == NULL, "Got unexpected image_a %p.\n", image_a); } winetest_pop_context(); @@ -9864,7 +9860,6 @@ static void test_effect(BOOL d3d11) image_a = (ID2D1Image *)0xdeadbeef; ID2D1Effect_SetInput(effect, j, (ID2D1Image *)bitmap, FALSE); ID2D1Effect_GetInput(effect, j, &image_a); - todo_wine ok(image_a == NULL, "Got unexpected image_a %p.\n", image_a); winetest_pop_context(); }