Nikolay Sivov (@nsivov) commented about dlls/d2d1/effect.c:
- return transform->input_count;
+}
+static HRESULT STDMETHODCALLTYPE d2d_blend_transform_SetOutputBuffer(ID2D1BlendTransform *iface,
D2D1_BUFFER_PRECISION precision, D2D1_CHANNEL_DEPTH depth)
+{
- struct d2d_transform *transform = impl_from_ID2D1BlendTransform(iface);
- TRACE("iface %p, precision %#x, depth %#x.\n", iface, precision, depth);
- if ((precision != D2D1_BUFFER_PRECISION_UNKNOWN
&& precision != D2D1_BUFFER_PRECISION_8BPC_UNORM
&& precision != D2D1_BUFFER_PRECISION_8BPC_UNORM_SRGB
&& precision != D2D1_BUFFER_PRECISION_16BPC_UNORM
&& precision != D2D1_BUFFER_PRECISION_16BPC_FLOAT
&& precision != D2D1_BUFFER_PRECISION_32BPC_FLOAT)
These values are sequential, you could just check if it's within valid range.