[PATCH 3/4] d3drm: Implement appdata property for the rest of objects.

Nikolay Sivov nsivov at codeweavers.com
Wed Jun 21 07:39:31 CDT 2017


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/d3drm/device.c      | 14 +++++++----
 dlls/d3drm/face.c        | 46 ++++++++++++++++++++++---------------
 dlls/d3drm/frame.c       | 38 ++++++++++++++++++++----------
 dlls/d3drm/light.c       | 14 +++++++----
 dlls/d3drm/material.c    | 14 +++++++----
 dlls/d3drm/meshbuilder.c | 60 ++++++++++++++++++++++++++++++------------------
 6 files changed, 122 insertions(+), 64 deletions(-)

diff --git a/dlls/d3drm/device.c b/dlls/d3drm/device.c
index 2608ed62c0..c5376743ee 100644
--- a/dlls/d3drm/device.c
+++ b/dlls/d3drm/device.c
@@ -454,9 +454,13 @@ static HRESULT WINAPI d3drm_device1_DeleteDestroyCallback(IDirect3DRMDevice *ifa
 
 static HRESULT WINAPI d3drm_device3_SetAppData(IDirect3DRMDevice3 *iface, DWORD data)
 {
-    FIXME("iface %p, data %#x stub!\n", iface, data);
+    struct d3drm_device *device = impl_from_IDirect3DRMDevice3(iface);
 
-    return E_NOTIMPL;
+    TRACE("iface %p, data %#x.\n", iface, data);
+
+    device->obj.appdata = data;
+
+    return D3DRM_OK;
 }
 
 static HRESULT WINAPI d3drm_device2_SetAppData(IDirect3DRMDevice2 *iface, DWORD data)
@@ -479,9 +483,11 @@ static HRESULT WINAPI d3drm_device1_SetAppData(IDirect3DRMDevice *iface, DWORD d
 
 static DWORD WINAPI d3drm_device3_GetAppData(IDirect3DRMDevice3 *iface)
 {
-    FIXME("iface %p stub!\n", iface);
+    struct d3drm_device *device = impl_from_IDirect3DRMDevice3(iface);
+
+    TRACE("iface %p.\n", iface);
 
-    return 0;
+    return device->obj.appdata;
 }
 
 static DWORD WINAPI d3drm_device2_GetAppData(IDirect3DRMDevice2 *iface)
diff --git a/dlls/d3drm/face.c b/dlls/d3drm/face.c
index 40313440ac..49284f0887 100644
--- a/dlls/d3drm/face.c
+++ b/dlls/d3drm/face.c
@@ -116,18 +116,42 @@ static HRESULT WINAPI d3drm_face1_DeleteDestroyCallback(IDirect3DRMFace *iface,
     return IDirect3DRMFace2_DeleteDestroyCallback(&face->IDirect3DRMFace2_iface, cb, ctx);
 }
 
+static HRESULT WINAPI d3drm_face2_SetAppData(IDirect3DRMFace2 *iface, DWORD data)
+{
+    struct d3drm_face *face = impl_from_IDirect3DRMFace2(iface);
+
+    TRACE("iface %p, data %#x.\n", iface, data);
+
+    face->obj.appdata = data;
+
+    return D3DRM_OK;
+}
+
 static HRESULT WINAPI d3drm_face1_SetAppData(IDirect3DRMFace *iface, DWORD data)
 {
-    FIXME("iface %p, data %#x stub!\n", iface, data);
+    struct d3drm_face *face = impl_from_IDirect3DRMFace(iface);
+
+    TRACE("iface %p, data %#x.\n", iface, data);
+
+    return d3drm_face2_SetAppData(&face->IDirect3DRMFace2_iface, data);
+}
+
+static DWORD WINAPI d3drm_face2_GetAppData(IDirect3DRMFace2 *iface)
+{
+    struct d3drm_face *face = impl_from_IDirect3DRMFace2(iface);
 
-    return E_NOTIMPL;
+    TRACE("iface %p.\n", iface);
+
+    return face->obj.appdata;
 }
 
 static DWORD WINAPI d3drm_face1_GetAppData(IDirect3DRMFace *iface)
 {
-    FIXME("iface %p stub!\n", iface);
+    struct d3drm_face *face = impl_from_IDirect3DRMFace(iface);
 
-    return 0;
+    TRACE("iface %p.\n", iface);
+
+    return d3drm_face2_GetAppData(&face->IDirect3DRMFace2_iface);
 }
 
 static HRESULT WINAPI d3drm_face2_SetName(IDirect3DRMFace2 *iface, const char *name)
@@ -398,20 +422,6 @@ static HRESULT WINAPI d3drm_face2_DeleteDestroyCallback(IDirect3DRMFace2 *iface,
     return d3drm_object_delete_destroy_callback(&face->obj, cb, ctx);
 }
 
-static HRESULT WINAPI d3drm_face2_SetAppData(IDirect3DRMFace2 *iface, DWORD data)
-{
-    FIXME("iface %p, data %#x stub!\n", iface, data);
-
-    return E_NOTIMPL;
-}
-
-static DWORD WINAPI d3drm_face2_GetAppData(IDirect3DRMFace2 *iface)
-{
-    FIXME("iface %p stub!\n", iface);
-
-    return 0;
-}
-
 static HRESULT WINAPI d3drm_face2_GetClassName(IDirect3DRMFace2 *iface, DWORD *size, char *name)
 {
     struct d3drm_face *face = impl_from_IDirect3DRMFace2(iface);
diff --git a/dlls/d3drm/frame.c b/dlls/d3drm/frame.c
index 812ab4cd37..baf84de665 100644
--- a/dlls/d3drm/frame.c
+++ b/dlls/d3drm/frame.c
@@ -660,44 +660,58 @@ static HRESULT WINAPI d3drm_frame1_DeleteDestroyCallback(IDirect3DRMFrame *iface
 
 static HRESULT WINAPI d3drm_frame3_SetAppData(IDirect3DRMFrame3 *iface, DWORD data)
 {
-    FIXME("iface %p, data %#x stub!\n", iface, data);
+    struct d3drm_frame *frame = impl_from_IDirect3DRMFrame3(iface);
 
-    return E_NOTIMPL;
+    TRACE("iface %p, data %#x.\n", iface, data);
+
+    frame->obj.appdata = data;
+
+    return D3DRM_OK;
 }
 
 static HRESULT WINAPI d3drm_frame2_SetAppData(IDirect3DRMFrame2 *iface, DWORD data)
 {
-    FIXME("iface %p, data %#x stub!\n", iface, data);
+    struct d3drm_frame *frame = impl_from_IDirect3DRMFrame2(iface);
 
-    return E_NOTIMPL;
+    TRACE("iface %p, data %#x.\n", iface, data);
+
+    return d3drm_frame3_SetAppData(&frame->IDirect3DRMFrame3_iface, data);
 }
 
 static HRESULT WINAPI d3drm_frame1_SetAppData(IDirect3DRMFrame *iface, DWORD data)
 {
-    FIXME("iface %p, data %#x stub!\n", iface, data);
+    struct d3drm_frame *frame = impl_from_IDirect3DRMFrame(iface);
 
-    return E_NOTIMPL;
+    TRACE("iface %p, data %#x.\n", iface, data);
+
+    return d3drm_frame3_SetAppData(&frame->IDirect3DRMFrame3_iface, data);
 }
 
 static DWORD WINAPI d3drm_frame3_GetAppData(IDirect3DRMFrame3 *iface)
 {
-    FIXME("iface %p stub!\n", iface);
+    struct d3drm_frame *frame = impl_from_IDirect3DRMFrame3(iface);
 
-    return 0;
+    TRACE("iface %p.\n", iface);
+
+    return frame->obj.appdata;
 }
 
 static DWORD WINAPI d3drm_frame2_GetAppData(IDirect3DRMFrame2 *iface)
 {
-    FIXME("iface %p stub!\n", iface);
+    struct d3drm_frame *frame = impl_from_IDirect3DRMFrame2(iface);
 
-    return 0;
+    TRACE("iface %p.\n", iface);
+
+    return d3drm_frame3_GetAppData(&frame->IDirect3DRMFrame3_iface);
 }
 
 static DWORD WINAPI d3drm_frame1_GetAppData(IDirect3DRMFrame *iface)
 {
-    FIXME("iface %p stub!\n", iface);
+    struct d3drm_frame *frame = impl_from_IDirect3DRMFrame(iface);
 
-    return 0;
+    TRACE("iface %p.\n", iface);
+
+    return d3drm_frame3_GetAppData(&frame->IDirect3DRMFrame3_iface);
 }
 
 static HRESULT WINAPI d3drm_frame3_SetName(IDirect3DRMFrame3 *iface, const char *name)
diff --git a/dlls/d3drm/light.c b/dlls/d3drm/light.c
index f7d259ce84..855209fb42 100644
--- a/dlls/d3drm/light.c
+++ b/dlls/d3drm/light.c
@@ -106,16 +106,22 @@ static HRESULT WINAPI d3drm_light_DeleteDestroyCallback(IDirect3DRMLight *iface,
 
 static HRESULT WINAPI d3drm_light_SetAppData(IDirect3DRMLight *iface, DWORD data)
 {
-    FIXME("iface %p, data %#x stub!\n", iface, data);
+    struct d3drm_light *light = impl_from_IDirect3DRMLight(iface);
 
-    return E_NOTIMPL;
+    TRACE("iface %p, data %#x.\n", iface, data);
+
+    light->obj.appdata = data;
+
+    return D3DRM_OK;
 }
 
 static DWORD WINAPI d3drm_light_GetAppData(IDirect3DRMLight *iface)
 {
-    FIXME("iface %p stub!\n", iface);
+    struct d3drm_light *light = impl_from_IDirect3DRMLight(iface);
+
+    TRACE("iface %p.\n", iface);
 
-    return 0;
+    return light->obj.appdata;
 }
 
 static HRESULT WINAPI d3drm_light_SetName(IDirect3DRMLight *iface, const char *name)
diff --git a/dlls/d3drm/material.c b/dlls/d3drm/material.c
index 73979952c8..d13b0dd9da 100644
--- a/dlls/d3drm/material.c
+++ b/dlls/d3drm/material.c
@@ -107,16 +107,22 @@ static HRESULT WINAPI d3drm_material_DeleteDestroyCallback(IDirect3DRMMaterial2
 
 static HRESULT WINAPI d3drm_material_SetAppData(IDirect3DRMMaterial2 *iface, DWORD data)
 {
-    FIXME("iface %p, data %#x stub!\n", iface, data);
+    struct d3drm_material *material = impl_from_IDirect3DRMMaterial2(iface);
 
-    return E_NOTIMPL;
+    TRACE("iface %p, data %#x.\n", iface, data);
+
+    material->obj.appdata = data;
+
+    return D3DRM_OK;
 }
 
 static DWORD WINAPI d3drm_material_GetAppData(IDirect3DRMMaterial2 *iface)
 {
-    FIXME("iface %p stub!\n", iface);
+    struct d3drm_material *material = impl_from_IDirect3DRMMaterial2(iface);
+
+    TRACE("iface %p.\n", iface);
 
-    return 0;
+    return material->obj.appdata;
 }
 
 static HRESULT WINAPI d3drm_material_SetName(IDirect3DRMMaterial2 *iface, const char *name)
diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
index 025e0f5405..2afff7ac51 100644
--- a/dlls/d3drm/meshbuilder.c
+++ b/dlls/d3drm/meshbuilder.c
@@ -453,18 +453,42 @@ static HRESULT WINAPI d3drm_mesh_builder2_DeleteDestroyCallback(IDirect3DRMMeshB
     return IDirect3DRMMeshBuilder3_DeleteDestroyCallback(&mesh_builder->IDirect3DRMMeshBuilder3_iface, cb, ctx);
 }
 
+static HRESULT WINAPI d3drm_mesh_builder3_SetAppData(IDirect3DRMMeshBuilder3 *iface, DWORD data)
+{
+    struct d3drm_mesh_builder *mesh_builder = impl_from_IDirect3DRMMeshBuilder3(iface);
+
+    TRACE("iface %p, data %#x.\n", iface, data);
+
+    mesh_builder->obj.appdata = data;
+
+    return D3DRM_OK;
+}
+
 static HRESULT WINAPI d3drm_mesh_builder2_SetAppData(IDirect3DRMMeshBuilder2 *iface, DWORD data)
 {
-    FIXME("iface %p, data %#x stub!\n", iface, data);
+    struct d3drm_mesh_builder *mesh_builder = impl_from_IDirect3DRMMeshBuilder2(iface);
 
-    return E_NOTIMPL;
+    TRACE("iface %p, data %#x.\n", iface, data);
+
+    return d3drm_mesh_builder3_SetAppData(&mesh_builder->IDirect3DRMMeshBuilder3_iface, data);
+}
+
+static DWORD WINAPI d3drm_mesh_builder3_GetAppData(IDirect3DRMMeshBuilder3 *iface)
+{
+    struct d3drm_mesh_builder *mesh_builder = impl_from_IDirect3DRMMeshBuilder3(iface);
+
+    TRACE("iface %p.\n", iface);
+
+    return mesh_builder->obj.appdata;
 }
 
 static DWORD WINAPI d3drm_mesh_builder2_GetAppData(IDirect3DRMMeshBuilder2 *iface)
 {
-    FIXME("iface %p stub!\n", iface);
+    struct d3drm_mesh_builder *mesh_builder = impl_from_IDirect3DRMMeshBuilder2(iface);
 
-    return 0;
+    TRACE("iface %p.\n", iface);
+
+    return d3drm_mesh_builder3_GetAppData(&mesh_builder->IDirect3DRMMeshBuilder3_iface);
 }
 
 static HRESULT WINAPI d3drm_mesh_builder2_SetName(IDirect3DRMMeshBuilder2 *iface, const char *name)
@@ -989,20 +1013,6 @@ static HRESULT WINAPI d3drm_mesh_builder3_DeleteDestroyCallback(IDirect3DRMMeshB
     return d3drm_object_delete_destroy_callback(&mesh_builder->obj, cb, ctx);
 }
 
-static HRESULT WINAPI d3drm_mesh_builder3_SetAppData(IDirect3DRMMeshBuilder3 *iface, DWORD data)
-{
-    FIXME("iface %p, data %#x stub!\n", iface, data);
-
-    return E_NOTIMPL;
-}
-
-static DWORD WINAPI d3drm_mesh_builder3_GetAppData(IDirect3DRMMeshBuilder3 *iface)
-{
-    FIXME("iface %p stub!\n", iface);
-
-    return 0;
-}
-
 static HRESULT WINAPI d3drm_mesh_builder3_SetName(IDirect3DRMMeshBuilder3 *iface, const char *name)
 {
     struct d3drm_mesh_builder *mesh_builder = impl_from_IDirect3DRMMeshBuilder3(iface);
@@ -2454,16 +2464,22 @@ static HRESULT WINAPI d3drm_mesh_DeleteDestroyCallback(IDirect3DRMMesh *iface,
 
 static HRESULT WINAPI d3drm_mesh_SetAppData(IDirect3DRMMesh *iface, DWORD data)
 {
-    FIXME("iface %p, data %#x stub!\n", iface, data);
+    struct d3drm_mesh *mesh = impl_from_IDirect3DRMMesh(iface);
 
-    return E_NOTIMPL;
+    TRACE("iface %p, data %#x.\n", iface, data);
+
+    mesh->obj.appdata = data;
+
+    return D3DRM_OK;
 }
 
 static DWORD WINAPI d3drm_mesh_GetAppData(IDirect3DRMMesh *iface)
 {
-    FIXME("iface %p stub!\n", iface);
+    struct d3drm_mesh *mesh = impl_from_IDirect3DRMMesh(iface);
 
-    return 0;
+    TRACE("iface %p.\n", iface);
+
+    return mesh->obj.appdata;
 }
 
 static HRESULT WINAPI d3drm_mesh_SetName(IDirect3DRMMesh *iface, const char *name)
-- 
2.11.0




More information about the wine-patches mailing list