[PATCH 4/4] d3drm: Implement IDirect3DRMDevice*::Add/DeleteDestroyCallback. (v2)

Stefan Dösinger stefandoesinger at gmail.com
Mon Jul 11 01:35:57 CDT 2016


-----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.
Well, but you can call AddDestroyCallback on the version 3 interface too:

IDirect3DRMDevice *dev1;
IDirect3DRMDevice3 *dev3;

dev1 = create_device();
dev3 = dev1->qi(IID_IDirect3DRMDevice3);

dev1->AddDestroyCallback(...);
dev3->AddDestroyCallback(...);

The current code will always pass dev1 to the callback. It may be
correct, it may be wrong.

But yeah, we won't accidentally pass an IDirect3DRMFrame interface to
the callback if AddDestroyCallback was called on a device.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXgz5NAAoJEN0/YqbEcdMw7RAP/1am78HbnuobIjjjBJYz+pCb
lOPqKNZP2+dRIbJzTpd9Jgwz8Vonishwn9B+ZF6X71neWOHFG7xGFsGFq8OvuNBO
c+jSOdrd/jkHLf61pllRBOk7QykoLCFIoaIbj843xeTeseabND7bwZwXVBKt34Gb
hce0wquaITIntu5UPcLVnr3ak0meaADaXETRjiFamVnAPPmmyr3WyAYenVOT9P8c
1J8UneOEzBPXUtdsc8V4S0qQfpOEo9W8t1uh0M9FndAUNZyF9k7f6TzlEkA4e6C2
JzG5TfsIKg6LWgnX+WmGZ4ByZVfzdA/x0kWu7t0Gp9Wbb28rPMWs4yF2IU5uAw1q
lHWIutHmmDCC7sxdyOOYp28ej1pxO3g23INynyUB3GTwAGyX2v/F+5a7Ge19IP1d
8A93T1id4ZZLzhF13oWHqFPhLLa1uoeAg0bpiXrC9SodK3x6YKrdBK/n/fyrHY3j
8fSrYBQwCt0ojV4Y7mqEZpG7M3+2asis26BdpaHGemcAlqEOThQOiIJiuvw/loWZ
wkBGrzz5nkL6wTZHioPGCBkLm1vgD5H1N+wyYWDXQ2Adm+fgp7xP+VMMZ+66obCk
CQgork1bnSkBsMWvafaGHim3+pbJdMXK1dbE3RjjdwC5bz2UsT2AxqH4ldJXEjxe
gf+UMdoIzcyXS68E+Bpb
=vqhG
-----END PGP SIGNATURE-----



More information about the wine-devel mailing list