Module: wine Branch: master Commit: a5214c306fd82982ed10fd8221ac00230186c9a6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a5214c306fd82982ed10fd8221...
Author: Henri Verbeet hverbeet@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=a5214c306fd82982ed10fd...