-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Am 2016-05-13 um 22:21 schrieb Aaryaman Vasishta:
static HRESULT WINAPI d3drm_texture1_InitFromFile(IDirect3DRMTexture *iface, const char *filename) { - FIXME("iface %p, filename %s stub!\n", iface, debugstr_a(filename)); + struct d3drm_texture *texture = impl_from_IDirect3DRMTexture(iface); + D3DRMIMAGE *image; + HRESULT hr;
- return E_NOTIMPL; + TRACE("iface %p, filename %s.\n", iface, debugstr_a(filename)); + + if (texture->image) + { + /* d3drm intentionally leaks a reference IDirect3DRM if texture is already initialized. */ + IDirect3DRM_AddRef(texture->d3drm); + return D3DRMERR_BADOBJECT; + } + if (FAILED(hr = d3drm_texture_load(texture, filename, FALSE, &image))) + return hr; + + hr = IDirect3DRMTexture3_InitFromImage(&texture->IDirect3DRMTexture3_iface, image); I think you forgot to remove the extra check here :-) . (https://www.winehq.org/pipermail/wine-devel/2016-May/113212.html)
- IDirect3DRM_AddRef(texture->d3drm); + if (texture->d3drm) + IDirect3DRM_AddRef(texture->d3drm); This if check looks like it is an accidental leftover from before you reordered patch 1 too.
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJXOiCxAAoJEN0/YqbEcdMwpSkP/ifqzhJnNWI0ZRqMQa9/rOUg MgbEJEGLC2xFFWwGWHL3biuf+ibZOkmmAPBUznU9+E70ekzegvvRGquc2HTHP0y+ 43PXR5A9TXFoOEDvkIiYF6KGiTyEoC2K3N3KzMabm5Iz8ReDLqvF4MmwlggTBsWQ RS1hbDgP4KKSGRECJFKmI3F0WJk52T2TtPjVXmHrYLYgSKQ8QmCj0BSCGBLFlqWF uQtH6sM/dI4w6LiqjG83JAlt7VmKZ5hrWJIY7IakF7vZLIOwni4x9+CJyh9b6dc6 gAY27wojqiBtk7x8weQXG2o3kToCL0+dpHTcLNKuJy80tPZa5QVTmXNF5B+Eqtjf 7u3ZWOOEKGdVKKDaztnoEtxlXHfZDn4ST+2pdUhbOW9X5gcxxSQWyour9FnD/fGj i/OkgvM4gszu1RwcZlpbUY8CkyboOJyziVSUxt7cnW2gHDXY0FwhQMvfpHoPSxiq +UmsuTFwopoJzK30kh4kwmJSkBGtackb2nA0i34tb69ixIAfQy55cqYTgozEzclh +2T/wa5q2DhOlHBScjPlUu46j3AqI8B0mtfrLuURB2UWzxKOZpZYtVsTLErVSFqT 745Z+bPbYWGETBJYx+BVxFE4bpGpwqJTI5IH/jITDv4qmNxoLgHKeYnxU9dwayhx PcvR3vpmTKw/C2N84u+n =3f/e -----END PGP SIGNATURE-----