2009/9/30 Stefan Dösinger stefan@codeweavers.com:
This is hard to implement in the client lib - it would require to remove the AddRef from wined3d altogether, and pass the priv data flags to the client, and then AddRef in d3d8, d3d9 and dxgi/d3d10. I can't use a Release in ddraw because we're calling application code here which might break if the app's AddRef() implementation is broken. Handling the AddRef in d3d8/9/10 is a lot of work because those libs don't have any IDirect3D*Resource base class that could do this in a central place.
I'm not sure why you'd need an entire baseclass, an utility function (which is how it's done in wined3d!) should do just fine.
+const UINT WINED3DCREATE_GET_PRIV_DATA_NO_ADDREFF = 0x00000004;
There should only be a single 'F' in ADDREF.