Stefan Doesinger : wined3d: Implement EvictManagedResources.
Module: wine Branch: master Commit: 0188f96dd2b9f6e32845920f6fb4f73862ef45c4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=0188f96dd2b9f6e32845920f6f... Author: Stefan Doesinger <stefan(a)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; }
participants (1)
-
Alexandre Julliard