Module: wine Branch: master Commit: 0188f96dd2b9f6e32845920f6fb4f73862ef45c4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=0188f96dd2b9f6e32845920f6f...
Author: Stefan Doesinger stefan@codeweavers.com Date: Tue Jun 9 23:06:06 2009 -0700
wined3d: Implement EvictManagedResources.
---
dlls/wined3d/device.c | 17 ++++++++++++----- 1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 5378568..04a453e 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -6856,14 +6856,21 @@ static HRESULT WINAPI IWineD3DDeviceImpl_TestCooperativeLevel(IWineD3DDevice* return WINED3DERR_DRIVERINTERNALERROR; }
+static HRESULT WINAPI evict_managed_resource(IWineD3DResource *resource, void *data) { + TRACE("checking resource %p for eviction\n", resource); + if(((IWineD3DResourceImpl *) resource)->resource.pool == WINED3DPOOL_MANAGED) { + TRACE("Evicting %p\n", resource); + IWineD3DResource_UnLoad(resource); + } + IWineD3DResource_Release(resource); + return S_OK; +}
static HRESULT WINAPI IWineD3DDeviceImpl_EvictManagedResources(IWineD3DDevice* iface) { IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface; - /** FIXME: Resource tracking needs to be done, - * The closes we can do to this is set the priorities of all managed textures low - * and then reset them. - ***********************************************************/ - FIXME("(%p) : stub\n", This); + TRACE("(%p)\n", This); + + IWineD3DDevice_EnumResources(iface, evict_managed_resource, NULL); return WINED3D_OK; }