<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 11, 2016 at 1:11 PM, Aaryaman Vasishta <span dir="ltr"><<a href="mailto:jem456.vasishta@gmail.com" target="_blank">jem456.vasishta@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">CC'ing to wine-devel again.<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 11, 2016 at 1:10 PM, Aaryaman Vasishta <span dir="ltr"><<a href="mailto:jem456.vasishta@gmail.com" target="_blank">jem456.vasishta@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span>On Mon, Jul 11, 2016 at 1:06 PM, Aaryaman Vasishta <span dir="ltr"><<a href="mailto:jem456.vasishta@gmail.com" target="_blank">jem456.vasishta@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span>On Mon, Jul 11, 2016 at 12:05 PM, Stefan Dösinger <span dir="ltr"><<a href="mailto:stefandoesinger@gmail.com" target="_blank">stefandoesinger@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA256<br>
<br>
</span><span>Am 2016-07-10 um 23:14 schrieb Aaryaman Vasishta:<br>
> Anyways, the vtable qi tests tests written so far show that<br>
> querying IDirect3DRMObject from a particular interface will return<br>
> version 1 of that interface. So technically it all comes down to<br>
> calling<br>
> IDirect3DRM<Interface_name>::AddDestroyCallback(&object->version1_vtable,<br>
> ...);. In our implementation of this method (see d3drm_main.c), we<br>
> have passed version 1 of the relevant interface while calling the<br>
> destroy callbacks within d3drm_object_destroy. The tests seem to<br>
> agree with that implementation so far.</span><br></blockquote></span></div></div></div></blockquote></span><div>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. <br></div></div></div></div></blockquote></div></div></div></div></blockquote><div>Umm, It's still not clear whether the interface is QI'd to IDirect3DRMObject or referenced directly. Our implementation doesn't do the AddRef, but I don't think refcounting matters much in this case, since the callbacks happen right before the object gets destroyed. <br></div></div><br></div></div>