Henri Verbeet : wined3d: Don' t free D3D surfaces until the wined3d surface is destroyed.

Alexandre Julliard julliard at winehq.org
Wed Sep 16 15:59:45 CDT 2009


Module: wine
Branch: master
Commit: a5214c306fd82982ed10fd8221ac00230186c9a6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a5214c306fd82982ed10fd8221ac00230186c9a6

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Wed Sep 16 08:37:15 2009 +0200

wined3d: Don't free D3D surfaces until the wined3d surface is destroyed.

This prevents for example a d3d9 depth stencil from being destroyed when it
has no external references but is still in use by the device/stateblock. A
nice side effect is that it simplifies handling of "implicit" surfaces like
the frontbuffer and backbuffers, as well as the forwarding of reference counts
for surfaces that are part of a texture.

---

 dlls/d3d10core/device.c        |    6 ++
 dlls/d3d10core/texture2d.c     |   21 +++++++-
 dlls/d3d8/cubetexture.c        |    2 +-
 dlls/d3d8/d3d8_private.h       |    6 --
 dlls/d3d8/device.c             |   23 +++-----
 dlls/d3d8/directx.c            |   20 -------
 dlls/d3d8/surface.c            |   31 ++++++++---
 dlls/d3d8/swapchain.c          |    2 +-
 dlls/d3d8/texture.c            |    2 +-
 dlls/d3d9/cubetexture.c        |    2 +-
 dlls/d3d9/d3d9_private.h       |    6 --
 dlls/d3d9/device.c             |   22 +++-----
 dlls/d3d9/directx.c            |   20 -------
 dlls/d3d9/surface.c            |   31 ++++++++---
 dlls/d3d9/swapchain.c          |    2 +-
 dlls/d3d9/texture.c            |    2 +-
 dlls/ddraw/ddraw.c             |  109 ++++++++--------------------------------
 dlls/ddraw/ddraw_private.h     |    3 -
 dlls/ddraw/main.c              |    4 --
 dlls/ddraw/surface.c           |    9 +++-
 dlls/dxgi/swapchain.c          |   14 +-----
 dlls/wined3d/cubetexture.c     |   13 +++--
 dlls/wined3d/device.c          |   31 ++++-------
 dlls/wined3d/directx.c         |   18 +++----
 dlls/wined3d/surface.c         |    6 ++-
 dlls/wined3d/surface_base.c    |    4 +-
 dlls/wined3d/swapchain.c       |   11 ++--
 dlls/wined3d/swapchain_base.c  |    2 +-
 dlls/wined3d/swapchain_gdi.c   |   13 +++--
 dlls/wined3d/texture.c         |   13 +++--
 dlls/wined3d/wined3d_private.h |    6 +-
 include/wine/wined3d.idl       |   13 +++--
 32 files changed, 188 insertions(+), 279 deletions(-)

Diff:   http://source.winehq.org/git/wine.git/?a=commitdiff;h=a5214c306fd82982ed10fd8221ac00230186c9a6



More information about the wine-cvs mailing list