[PATCH 1/5] d2d1: Implement d2d_bitmap_GetFactory().
Henri Verbeet
hverbeet at codeweavers.com
Tue Aug 4 01:53:25 CDT 2015
---
dlls/d2d1/bitmap.c | 8 ++++++--
dlls/d2d1/d2d1_private.h | 1 +
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/d2d1/bitmap.c b/dlls/d2d1/bitmap.c
index 00359cb..2627501 100644
--- a/dlls/d2d1/bitmap.c
+++ b/dlls/d2d1/bitmap.c
@@ -67,6 +67,7 @@ static ULONG STDMETHODCALLTYPE d2d_bitmap_Release(ID2D1Bitmap *iface)
if (!refcount)
{
ID3D10ShaderResourceView_Release(bitmap->view);
+ ID2D1Factory_Release(bitmap->factory);
HeapFree(GetProcessHeap(), 0, bitmap);
}
@@ -75,9 +76,11 @@ static ULONG STDMETHODCALLTYPE d2d_bitmap_Release(ID2D1Bitmap *iface)
static void STDMETHODCALLTYPE d2d_bitmap_GetFactory(ID2D1Bitmap *iface, ID2D1Factory **factory)
{
- FIXME("iface %p, factory %p stub!\n", iface, factory);
+ struct d2d_bitmap *bitmap = impl_from_ID2D1Bitmap(iface);
+
+ TRACE("iface %p, factory %p.\n", iface, factory);
- *factory = NULL;
+ ID2D1Factory_AddRef(*factory = bitmap->factory);
}
static D2D1_SIZE_F * STDMETHODCALLTYPE d2d_bitmap_GetSize(ID2D1Bitmap *iface, D2D1_SIZE_F *size)
@@ -212,6 +215,7 @@ HRESULT d2d_bitmap_init(struct d2d_bitmap *bitmap, struct d2d_d3d_render_target
bitmap->ID2D1Bitmap_iface.lpVtbl = &d2d_bitmap_vtbl;
bitmap->refcount = 1;
+ ID2D1Factory_AddRef(bitmap->factory = render_target->factory);
texture_desc.Width = size.width;
texture_desc.Height = size.height;
diff --git a/dlls/d2d1/d2d1_private.h b/dlls/d2d1/d2d1_private.h
index 3f2ac3e..d3c0117 100644
--- a/dlls/d2d1/d2d1_private.h
+++ b/dlls/d2d1/d2d1_private.h
@@ -188,6 +188,7 @@ struct d2d_bitmap
ID2D1Bitmap ID2D1Bitmap_iface;
LONG refcount;
+ ID2D1Factory *factory;
ID3D10ShaderResourceView *view;
D2D1_SIZE_U pixel_size;
D2D1_PIXEL_FORMAT format;
--
2.1.4
More information about the wine-patches
mailing list