CC'ing to wine-devel again.
On Mon, Jul 11, 2016 at 1:10 PM, Aaryaman Vasishta < jem456.vasishta@gmail.com> wrote:
On Mon, Jul 11, 2016 at 1:06 PM, Aaryaman Vasishta < jem456.vasishta@gmail.com> wrote:
On Mon, Jul 11, 2016 at 12:05 PM, Stefan Dösinger < stefandoesinger@gmail.com> wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Am 2016-07-10 um 23:14 schrieb Aaryaman Vasishta:
Anyways, the vtable qi tests tests written so far show that querying IDirect3DRMObject from a particular interface will return version 1 of that interface. So technically it all comes down to calling
IDirect3DRM<Interface_name>::AddDestroyCallback(&object->version1_vtable,
...);. In our implementation of this method (see d3drm_main.c), we have passed version 1 of the relevant interface while calling the destroy callbacks within d3drm_object_destroy. The tests seem to agree with that implementation so far.
Also, I may have written the example incorrectly. You're right about the
fact that calling device3->AddDestroyCallback will pass device3 into this function. But internally this interface will be QI'd to IDirect3DRMObject, and then passed as the first parameter to the destroy callback itself.