Kjell Rune Skaaraas : wined3d: Implement IWineD3DResourceImpl_GetPriority and IWineD3DResourceImpl_SetPriority for resource management .

Alexandre Julliard julliard at winehq.org
Wed Oct 8 08:33:12 CDT 2008


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

Author: Kjell Rune Skaaraas <kjellrs at sirius.lan>
Date:   Mon Sep 29 19:52:18 2008 +0200

wined3d: Implement IWineD3DResourceImpl_GetPriority and IWineD3DResourceImpl_SetPriority for resource management.

---

 dlls/wined3d/device.c          |    1 +
 dlls/wined3d/resource.c        |   12 +++++++-----
 dlls/wined3d/wined3d_private.h |    1 +
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index b5bc82f..79c9f68 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -90,6 +90,7 @@ static void WINAPI IWineD3DDeviceImpl_AddResource(IWineD3DDevice *iface, IWineD3
     object->resource.format          = Format; \
     object->resource.usage           = Usage; \
     object->resource.size            = _size; \
+    object->resource.priority        = 0; \
     list_init(&object->resource.privateData); \
     /* Check that we have enough video ram left */ \
     if (Pool == WINED3DPOOL_DEFAULT) { \
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index 17e540b..c75e09d 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -217,16 +217,18 @@ HRESULT WINAPI IWineD3DResourceImpl_FreePrivateData(IWineD3DResource *iface, REF
     return WINED3D_OK;
 }
 
-/* Priority support is not implemented yet */
 DWORD    WINAPI        IWineD3DResourceImpl_SetPriority(IWineD3DResource *iface, DWORD PriorityNew) {
     IWineD3DResourceImpl *This = (IWineD3DResourceImpl *)iface;
-    FIXME("(%p) : stub\n", This);
-    return 0;
+    DWORD PriorityOld = This->resource.priority;
+    This->resource.priority = PriorityNew;
+    TRACE("(%p) : new priority %d, returning old priority %d\n", This, PriorityNew, PriorityOld );
+    return PriorityOld;
 }
+
 DWORD    WINAPI        IWineD3DResourceImpl_GetPriority(IWineD3DResource *iface) {
     IWineD3DResourceImpl *This = (IWineD3DResourceImpl *)iface;
-    FIXME("(%p) : stub\n", This);
-    return 0;
+    TRACE("(%p) : returning %d\n", This, This->resource.priority );
+    return This->resource.priority;
 }
 
 /* Preloading of resources is not supported yet */
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index d4c6273..bc6a1cb 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1096,6 +1096,7 @@ typedef struct IWineD3DResourceClass
     UINT                    size;
     DWORD                   usage;
     WINED3DFORMAT           format;
+    DWORD                   priority;
     BYTE                   *allocatedMemory; /* Pointer to the real data location */
     BYTE                   *heapMemory; /* Pointer to the HeapAlloced block of memory */
     struct list             privateData;




More information about the wine-cvs mailing list