+ LONG refcount;
+};
+
+void d2d_solid_color_brush_init(struct d2d_brush *brush, ID2D1RenderTarget *render_target,
+ const D2D1_COLOR_F *color, const D2D1_BRUSH_PROPERTIES *desc) DECLSPEC_HIDDEN;
+
#endif /* __WINE_D2D1_PRIVATE_H */
diff --git a/dlls/d2d1/render_target.c b/dlls/d2d1/render_target.c
index be9c1b6..e8c56a0 100644
--- a/dlls/d2d1/render_target.c
+++ b/dlls/d2d1/render_target.c
@@ -117,9 +117,19 @@ static HRESULT STDMETHODCALLTYPE d2d_d3d_render_target_CreateBitmapBrush(ID2D1Re
static HRESULT STDMETHODCALLTYPE d2d_d3d_render_target_CreateSolidColorBrush(ID2D1RenderTarget *iface,
const D2D1_COLOR_F *color, const D2D1_BRUSH_PROPERTIES *desc, ID2D1SolidColorBrush **brush)
{
- FIXME("iface %p, color %p, desc %p, brush %p stub!\n", iface, color, desc, brush);
+ struct d2d_brush *object;
- return E_NOTIMPL;
+ TRACE("iface %p, color %p, desc %p, brush %p.\n", iface, color, desc, brush);
+
+ if (!(object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object))))
+ return E_OUTOFMEMORY;
+
+ d2d_solid_color_brush_init(object, iface, color, desc);
+
+ TRACE("Created brush %p.\n", object);
+ *brush = (ID2D1SolidColorBrush *)&object->ID2D1Brush_iface;