d3d [1]: Pass the superior creating object down to the callback functions.

Markus Amsler markus.amsler at oribi.org
Sun Dec 3 14:52:03 CST 2006


This allows making refcount/container handling independant from wined3d.


Patches 2-6 adds callbacks to destroy implicit objects. Not all implicit 
objects are destroyed if refcount reaches 0, so we need some way to 
force destruction. I found callbacks symmetric (we create implicit 
objects with callbacks), and relative simple. If someone has a better 
idea, let me know.

Patches 7-8 make d3d8 independent of GetContainerParent (and fixes one 
todo_wine). Containers are handled slightly different in d3d8 and d3d9, 
so the idea is to move container handling to d3dx.

Patch 9 fixes all d3d8 implicit refcount issues I know of. It also fixes 
bug 5872.

My next steps are:
   1. forwardport patch 7-9 to d3d9.
   2. remove GetContainerParent in wined3d.
   3. move container handling to d3dx.
   4. remove GetContainer/SetContainer in wined3d.
---
   dlls/d3d8/d3d8_private.h         |    8 ++++----
   dlls/d3d8/device.c               |    2 +-
   dlls/d3d8/directx.c              |    4 ++--
   dlls/d3d8/volume.c               |    2 +-
   dlls/d3d9/d3d9_private.h         |    8 ++++----
   dlls/d3d9/device.c               |    2 +-
   dlls/d3d9/directx.c              |    4 ++--
   dlls/d3d9/volume.c               |    2 +-
   dlls/ddraw/ddraw.c               |    5 ++++-
   dlls/wined3d/device.c            |    9 ++++++---
   include/wine/wined3d_interface.h |    4 ++++
   11 files changed, 30 insertions(+), 20 deletions(-)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 9a43c968b46803802d44cccbd06ac8e6328d87a1.diff
Type: text/x-patch
Size: 16291 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20061203/2edd97b2/9a43c968b46803802d44cccbd06ac8e6328d87a1.bin


More information about the wine-patches mailing list