[PATCH 3/3] d3drm/tests: Add tests for IDirect3DRMTexture{2-3}_InitFromImage. (v2)

Aaryaman Vasishta jem456.vasishta at gmail.com
Sun Apr 24 05:36:09 CDT 2016


On Sun, Apr 24, 2016 at 3:39 PM, Stefan Dösinger <stefandoesinger at gmail.com>
wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> Hi,
>
> I think it'd be a good idea to add some lines testing InitFromImage on
> a texture that was created with CreateTexture and trying to call
> InitFromImage twice (with the first call succeeding).
>
> Am 2016-04-24 um 06:46 schrieb Aaryaman Vasishta:
> > +    /* InitFromImage tests */
> > +    d3drm_img = NULL;
> > +    hr = IDirect3DRM2_CreateObject(d3drm2, &CLSID_CDirect3DRMTexture,
> NULL, &IID_IDirect3DRMTexture2, (void **)&texture2);
> > +    ok(SUCCEEDED(hr), "Cannot get IDirect3DRMTexture2 interface (hr =
> %x).\n", hr);
> > +    ref2 = get_refcount((IUnknown *)texture2);
> Did you forget IDirect3DRM::CreateObject(Texture1), or is there a
> reason why it is omitted?
>
InitFromImage only exists for versions 2 and 3, so the tests for that were
added accordingly, there wasn't any need for a CreateObject(Texture1) in
this case.

>
> > +    hr = IDirect3DRMTexture2_InitFromImage(texture2, NULL);
> > +    todo_wine ok(hr == D3DRMERR_BADOBJECT, "Expected hr ==
> D3DRMERR_BADOBJECT, got %x.\n", hr);
> > +    ref3 = get_refcount((IUnknown *)texture2);
> > +    ok(ref3 == ref2, "expected ref3 == ref2, got ref2 = %u , ref3 =
> %u.\n", ref2, ref3);
> You're not testing the reference count of d3drm1/2/3. My guess is that
> you plan to add this later since the InitFrom() increments it, and not
> the create. Is my understanding of your plans correct?
>
No you're right, I should've added refcount tests for d3drm1/2/3 as well.
Even though InitFrom* is not implemented at this point, it's still a good
idea to keep them as todo's and removing them when I send the
implementation for InitFromImage. What do you think?

InitFrom* does increment the refcount, whereas CreateObject doesn't seem
to. I think it was meant to be like that as every object creatable by
CreateObject has a corresponding init method, which I guess increments the
refcount when called.
I will resend this patch with the changes.

Cheers,
Aaryaman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20160424/ed0fb737/attachment.html>


More information about the wine-devel mailing list