Signed-off-by: Ziqing Hui zhui@codeweavers.com --- dlls/d2d1/effect.c | 8 +++++++- dlls/d2d1/tests/d2d1.c | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/d2d1/effect.c b/dlls/d2d1/effect.c index e0c028664d7..139095bae09 100644 --- a/dlls/d2d1/effect.c +++ b/dlls/d2d1/effect.c @@ -639,7 +639,13 @@ static HRESULT STDMETHODCALLTYPE d2d_effect_GetValue(ID2D1Effect *iface, UINT32
static UINT32 STDMETHODCALLTYPE d2d_effect_GetValueSize(ID2D1Effect *iface, UINT32 index) { - FIXME("iface %p, index %u stub!\n", iface, index); + struct d2d_effect *effect = impl_from_ID2D1Effect(iface); + struct d2d_effect_property *property; + + TRACE("iface %p, index %u.\n", iface, index); + + if ((property = d2d_effect_get_property(effect, index))) + return d2d_effect_property_get_value_size(property);
return 0; } diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c index 2f3b4add386..f86af6ec1bd 100644 --- a/dlls/d2d1/tests/d2d1.c +++ b/dlls/d2d1/tests/d2d1.c @@ -10435,7 +10435,10 @@ static void test_builtin_effect(BOOL d3d11) value_size = ID2D1Effect_GetValueSize(effect, property_test->index); if (property_test->value_size != 0) { - todo_wine ok(value_size == property_test->value_size, "Got unexpected value size %u, expected %u.\n", + todo_wine_if(property_test->index != D2D1_PROPERTY_CLSID && + property_test->index != D2D1_PROPERTY_MIN_INPUTS && + property_test->index != D2D1_PROPERTY_MAX_INPUTS) + ok(value_size == property_test->value_size, "Got unexpected value size %u, expected %u.\n", value_size, property_test->value_size); } else if (property_test->type == D2D1_PROPERTY_TYPE_STRING)