[PATCH 4/4] dx8vb: Implement Direct3D8 methods

Stefan Dösinger stefandoesinger at gmail.com
Tue Oct 31 08:30:22 CDT 2017

Am 2017-10-31 um 14:11 schrieb Fabian Maurer:
>> Why do you need a proxy IDirect3D8 implementation in dx8vb? Is there any
>> difference between dx8vb and d3d8?
> The interfaces in dx8vb are different interfaces, with different GUID and 
> sometimes slightly different method definitions and behavior. I don't know why 
> they did it that way, but I don't see another way than to have a wrapper for 
> all of these. If there is an easier way, I'd love to hear it.
Hmm, in this case a wrapper is probably the best choice...

Regarding the GUIDs, some tests would be great, e.g. showing that d3d8
does not support them, but dx8vb does.

You'll have a mess on your hands with various getter functions. Luckily
the IDirect3DResource8::{Get/Set}PrivateData methods are helpful for
textures, surfaces, swapchains and buffers, and in d3d8 shaders are
DWORD handles and vertex declarations don't exist. So you shouldn't have
to maintain your own stateblocks.

D3DSPD_IUNKNOWN is handy for being notified of the destruction of a
resource. You probably do have to keep your own refcounting and test if
it works the same way as in real d3d8.

More information about the wine-devel mailing list