Instead of ID2D1Factory.
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/d2d1/bitmap.c | 12 ++++++++---- dlls/d2d1/d2d1_private.h | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/dlls/d2d1/bitmap.c b/dlls/d2d1/bitmap.c index 7ed57052b98..bc58d7d92d5 100644 --- a/dlls/d2d1/bitmap.c +++ b/dlls/d2d1/bitmap.c @@ -73,7 +73,7 @@ static ULONG STDMETHODCALLTYPE d2d_bitmap_Release(ID2D1Bitmap1 *iface) if (bitmap->surface) IDXGISurface_Release(bitmap->surface); ID3D10Resource_Release(bitmap->resource); - ID2D1Factory_Release(bitmap->factory); + ID2D1Device_Release(bitmap->device); heap_free(bitmap); }
@@ -86,7 +86,7 @@ static void STDMETHODCALLTYPE d2d_bitmap_GetFactory(ID2D1Bitmap1 *iface, ID2D1Fa
TRACE("iface %p, factory %p.\n", iface, factory);
- ID2D1Factory_AddRef(*factory = bitmap->factory); + ID2D1Device_GetFactory(bitmap->device, factory); }
static D2D1_SIZE_F * STDMETHODCALLTYPE d2d_bitmap_GetSize(ID2D1Bitmap1 *iface, D2D1_SIZE_F *size) @@ -277,7 +277,7 @@ static void d2d_bitmap_init(struct d2d_bitmap *bitmap, struct d2d_device_context
bitmap->ID2D1Bitmap1_iface.lpVtbl = &d2d_bitmap_vtbl; bitmap->refcount = 1; - ID2D1Factory_AddRef(bitmap->factory = context->factory); + ID2D1Device_AddRef(bitmap->device = context->device); ID3D10Resource_AddRef(bitmap->resource = resource); bitmap->pixel_size = size; bitmap->format = desc->pixelFormat; @@ -385,14 +385,18 @@ HRESULT d2d_bitmap_create_shared(struct d2d_device_context *context, REFIID iid, if (IsEqualGUID(iid, &IID_ID2D1Bitmap)) { struct d2d_bitmap *src_impl = unsafe_impl_from_ID2D1Bitmap(data); + ID2D1Factory *factory; ID3D10Device *device; HRESULT hr = S_OK;
- if (src_impl->factory != context->factory) + ID2D1Device_GetFactory(src_impl->device, &factory); + if (factory != context->factory) { + ID2D1Factory_Release(factory); hr = D2DERR_WRONG_FACTORY; goto failed; } + ID2D1Factory_Release(factory);
ID3D10Resource_GetDevice(src_impl->resource, &device); ID3D10Device_Release(device); diff --git a/dlls/d2d1/d2d1_private.h b/dlls/d2d1/d2d1_private.h index 4546d5c1e3a..436c4b0f245 100644 --- a/dlls/d2d1/d2d1_private.h +++ b/dlls/d2d1/d2d1_private.h @@ -348,7 +348,7 @@ struct d2d_bitmap ID2D1Bitmap1 ID2D1Bitmap1_iface; LONG refcount;
- ID2D1Factory *factory; + ID2D1Device *device; ID3D10ShaderResourceView *srv; ID3D10RenderTargetView *rtv; IDXGISurface *surface;