From bfcbe3d9734b5009006c793bc12dbb91fa5b8e79 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Tue, 21 Jul 2015 23:33:10 +0000 Subject: [PATCH] [D3DRM] Sync with Wine Staging 1.7.47. CORE-9924 [PSDK] Update d3drm.h. svn path=/trunk/; revision=68528 --- reactos/dll/directx/wine/d3drm/CMakeLists.txt | 2 +- reactos/dll/directx/wine/d3drm/d3drm.c | 96 +++++++++++----- reactos/dll/directx/wine/d3drm/d3drm.spec | 4 +- .../dll/directx/wine/d3drm/d3drm_private.h | 2 +- reactos/dll/directx/wine/d3drm/device.c | 3 - reactos/dll/directx/wine/d3drm/face.c | 3 - reactos/dll/directx/wine/d3drm/frame.c | 106 +++++++++--------- reactos/dll/directx/wine/d3drm/meshbuilder.c | 29 +++-- reactos/dll/directx/wine/d3drm/viewport.c | 3 - reactos/include/psdk/d3drm.h | 6 +- reactos/media/doc/README.WINE | 2 +- 11 files changed, 151 insertions(+), 105 deletions(-) diff --git a/reactos/dll/directx/wine/d3drm/CMakeLists.txt b/reactos/dll/directx/wine/d3drm/CMakeLists.txt index bc3bc9fba3f..e686fd07e50 100644 --- a/reactos/dll/directx/wine/d3drm/CMakeLists.txt +++ b/reactos/dll/directx/wine/d3drm/CMakeLists.txt @@ -1,7 +1,7 @@ add_definitions(-D__WINESRC__) include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) -spec2def(d3drm.dll d3drm.spec) +spec2def(d3drm.dll d3drm.spec ADD_IMPORTLIB) list(APPEND SOURCE d3drm.c diff --git a/reactos/dll/directx/wine/d3drm/d3drm.c b/reactos/dll/directx/wine/d3drm/d3drm.c index 79e601a807f..627bd69b71a 100644 --- a/reactos/dll/directx/wine/d3drm/d3drm.c +++ b/reactos/dll/directx/wine/d3drm/d3drm.c @@ -44,7 +44,7 @@ struct d3drm IDirect3DRM IDirect3DRM_iface; IDirect3DRM2 IDirect3DRM2_iface; IDirect3DRM3 IDirect3DRM3_iface; - LONG ref; + LONG ref1, ref2, ref3, iface_count; }; static inline struct d3drm *impl_from_IDirect3DRM(IDirect3DRM *iface) @@ -62,6 +62,12 @@ static inline struct d3drm *impl_from_IDirect3DRM3(IDirect3DRM3 *iface) return CONTAINING_RECORD(iface, struct d3drm, IDirect3DRM3_iface); } +static void d3drm_destroy(struct d3drm *d3drm) +{ + HeapFree(GetProcessHeap(), 0, d3drm); + TRACE("d3drm object %p is being destroyed.\n", d3drm); +} + static HRESULT WINAPI d3drm1_QueryInterface(IDirect3DRM *iface, REFIID riid, void **out) { struct d3drm *d3drm = impl_from_IDirect3DRM(iface); @@ -84,8 +90,8 @@ static HRESULT WINAPI d3drm1_QueryInterface(IDirect3DRM *iface, REFIID riid, voi else { *out = NULL; - WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid)); - return E_NOINTERFACE; + WARN("%s not implemented, returning CLASS_E_CLASSNOTAVAILABLE.\n", debugstr_guid(riid)); + return CLASS_E_CLASSNOTAVAILABLE; } IUnknown_AddRef((IUnknown *)*out); @@ -95,22 +101,25 @@ static HRESULT WINAPI d3drm1_QueryInterface(IDirect3DRM *iface, REFIID riid, voi static ULONG WINAPI d3drm1_AddRef(IDirect3DRM *iface) { struct d3drm *d3drm = impl_from_IDirect3DRM(iface); - ULONG refcount = InterlockedIncrement(&d3drm->ref); + ULONG refcount = InterlockedIncrement(&d3drm->ref1); TRACE("%p increasing refcount to %u.\n", iface, refcount); + if (refcount == 1) + InterlockedIncrement(&d3drm->iface_count); + return refcount; } static ULONG WINAPI d3drm1_Release(IDirect3DRM *iface) { struct d3drm *d3drm = impl_from_IDirect3DRM(iface); - ULONG refcount = InterlockedDecrement(&d3drm->ref); + ULONG refcount = InterlockedDecrement(&d3drm->ref1); TRACE("%p decreasing refcount to %u.\n", iface, refcount); - if (!refcount) - HeapFree(GetProcessHeap(), 0, d3drm); + if (!refcount && !InterlockedDecrement(&d3drm->iface_count)) + d3drm_destroy(d3drm); return refcount; } @@ -444,15 +453,27 @@ static HRESULT WINAPI d3drm2_QueryInterface(IDirect3DRM2 *iface, REFIID riid, vo static ULONG WINAPI d3drm2_AddRef(IDirect3DRM2 *iface) { struct d3drm *d3drm = impl_from_IDirect3DRM2(iface); + ULONG refcount = InterlockedIncrement(&d3drm->ref2); - return d3drm1_AddRef(&d3drm->IDirect3DRM_iface); + TRACE("%p increasing refcount to %u.\n", iface, refcount); + + if (refcount == 1) + InterlockedIncrement(&d3drm->iface_count); + + return refcount; } static ULONG WINAPI d3drm2_Release(IDirect3DRM2 *iface) { struct d3drm *d3drm = impl_from_IDirect3DRM2(iface); + ULONG refcount = InterlockedDecrement(&d3drm->ref2); - return d3drm1_Release(&d3drm->IDirect3DRM_iface); + TRACE("%p decreasing refcount to %u.\n", iface, refcount); + + if (!refcount && !InterlockedDecrement(&d3drm->iface_count)) + d3drm_destroy(d3drm); + + return refcount; } static HRESULT WINAPI d3drm2_CreateObject(IDirect3DRM2 *iface, @@ -793,15 +814,27 @@ static HRESULT WINAPI d3drm3_QueryInterface(IDirect3DRM3 *iface, REFIID riid, vo static ULONG WINAPI d3drm3_AddRef(IDirect3DRM3 *iface) { struct d3drm *d3drm = impl_from_IDirect3DRM3(iface); + ULONG refcount = InterlockedIncrement(&d3drm->ref3); - return d3drm1_AddRef(&d3drm->IDirect3DRM_iface); + TRACE("%p increasing refcount to %u.\n", iface, refcount); + + if (refcount == 1) + InterlockedIncrement(&d3drm->iface_count); + + return refcount; } static ULONG WINAPI d3drm3_Release(IDirect3DRM3 *iface) { struct d3drm *d3drm = impl_from_IDirect3DRM3(iface); + ULONG refcount = InterlockedDecrement(&d3drm->ref3); - return d3drm1_Release(&d3drm->IDirect3DRM_iface); + TRACE("%p decreasing refcount to %u.\n", iface, refcount); + + if (!refcount && !InterlockedDecrement(&d3drm->iface_count)) + d3drm_destroy(d3drm); + + return refcount; } static HRESULT WINAPI d3drm3_CreateObject(IDirect3DRM3 *iface, @@ -919,10 +952,10 @@ static HRESULT WINAPI d3drm3_CreateDevice(IDirect3DRM3 *iface, } static HRESULT WINAPI d3drm3_CreateDeviceFromSurface(IDirect3DRM3 *iface, GUID *guid, - IDirectDraw *ddraw, IDirectDrawSurface *backbuffer, IDirect3DRMDevice3 **device) + IDirectDraw *ddraw, IDirectDrawSurface *backbuffer, DWORD flags, IDirect3DRMDevice3 **device) { - FIXME("iface %p, guid %s, ddraw %p, backbuffer %p, device %p partial stub.\n", - iface, debugstr_guid(guid), ddraw, backbuffer, device); + FIXME("iface %p, guid %s, ddraw %p, backbuffer %p, flags %#x, device %p partial stub.\n", + iface, debugstr_guid(guid), ddraw, backbuffer, flags, device); return Direct3DRMDevice_create(&IID_IDirect3DRMDevice3, (IUnknown **)device); } @@ -1162,32 +1195,29 @@ static HRESULT load_data(IDirect3DRM3 *iface, IDirectXFileData *data_object, IID IDirectXFileDataReference *reference; IDirectXFileBinary *binary; - hr = IDirectXFileObject_QueryInterface(child, &IID_IDirectXFileBinary, (void **)&binary); - if (SUCCEEDED(hr)) + if (SUCCEEDED(IDirectXFileObject_QueryInterface(child, + &IID_IDirectXFileBinary, (void **)&binary))) { FIXME("Binary Object not supported yet\n"); IDirectXFileBinary_Release(binary); - continue; } - - hr = IDirectXFileObject_QueryInterface(child, &IID_IDirectXFileData, (void **)&data); - if (SUCCEEDED(hr)) + else if (SUCCEEDED(IDirectXFileObject_QueryInterface(child, + &IID_IDirectXFileData, (void **)&data))) { TRACE("Found Data Object\n"); hr = load_data(iface, data, GUIDs, nb_GUIDs, LoadProc, ArgLP, LoadTextureProc, ArgLTP, frame); IDirectXFileData_Release(data); - continue; } - hr = IDirectXFileObject_QueryInterface(child, &IID_IDirectXFileDataReference, (void **)&reference); - if (SUCCEEDED(hr)) + else if (SUCCEEDED(IDirectXFileObject_QueryInterface(child, + &IID_IDirectXFileDataReference, (void **)&reference))) { TRACE("Found Data Object Reference\n"); IDirectXFileDataReference_Resolve(reference, &data); hr = load_data(iface, data, GUIDs, nb_GUIDs, LoadProc, ArgLP, LoadTextureProc, ArgLTP, frame); IDirectXFileData_Release(data); IDirectXFileDataReference_Release(reference); - continue; } + IDirectXFileObject_Release(child); } if (hr != DXFILEERR_NOMOREOBJECTS) @@ -1480,9 +1510,25 @@ HRESULT WINAPI Direct3DRMCreate(IDirect3DRM **d3drm) object->IDirect3DRM_iface.lpVtbl = &d3drm1_vtbl; object->IDirect3DRM2_iface.lpVtbl = &d3drm2_vtbl; object->IDirect3DRM3_iface.lpVtbl = &d3drm3_vtbl; - object->ref = 1; + object->ref1 = 1; + object->iface_count = 1; *d3drm = &object->IDirect3DRM_iface; return S_OK; } + +HRESULT WINAPI DllCanUnloadNow(void) +{ + return S_FALSE; +} + +HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv) +{ + TRACE("(%s, %s, %p): stub\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv); + + if(!ppv) + return E_INVALIDARG; + + return CLASS_E_CLASSNOTAVAILABLE; +} diff --git a/reactos/dll/directx/wine/d3drm/d3drm.spec b/reactos/dll/directx/wine/d3drm/d3drm.spec index e83fb0baf86..2c7a1a90dcb 100644 --- a/reactos/dll/directx/wine/d3drm/d3drm.spec +++ b/reactos/dll/directx/wine/d3drm/d3drm.spec @@ -19,5 +19,5 @@ @ stdcall D3DRMVectorScale(ptr ptr float) @ stdcall D3DRMVectorSubtract(ptr ptr ptr) @ stdcall Direct3DRMCreate(ptr) -@ stub -private DllCanUnloadNow -@ stub -private DllGetClassObject +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) diff --git a/reactos/dll/directx/wine/d3drm/d3drm_private.h b/reactos/dll/directx/wine/d3drm/d3drm_private.h index 777fe6869aa..f5004c6f901 100644 --- a/reactos/dll/directx/wine/d3drm/d3drm_private.h +++ b/reactos/dll/directx/wine/d3drm/d3drm_private.h @@ -58,6 +58,6 @@ struct d3drm_file_header DWORD flags; }; -extern char templates[]; +extern char templates[] DECLSPEC_HIDDEN; #endif /* __D3DRM_PRIVATE_INCLUDED__ */ diff --git a/reactos/dll/directx/wine/d3drm/device.c b/reactos/dll/directx/wine/d3drm/device.c index 9b0157563ec..25676a9afef 100644 --- a/reactos/dll/directx/wine/d3drm/device.c +++ b/reactos/dll/directx/wine/d3drm/device.c @@ -3,9 +3,6 @@ * * Copyright 2011, 2012 André Hentschel * - * This file contains the (internal) driver registration functions, - * driver enumeration APIs and DirectDraw creation functions. - * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either diff --git a/reactos/dll/directx/wine/d3drm/face.c b/reactos/dll/directx/wine/d3drm/face.c index 5cb37348a14..746cfe81faa 100644 --- a/reactos/dll/directx/wine/d3drm/face.c +++ b/reactos/dll/directx/wine/d3drm/face.c @@ -3,9 +3,6 @@ * * Copyright 2013 André Hentschel * - * This file contains the (internal) driver registration functions, - * driver enumeration APIs and DirectDraw creation functions. - * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either diff --git a/reactos/dll/directx/wine/d3drm/frame.c b/reactos/dll/directx/wine/d3drm/frame.c index 1e0f0566724..c5622e9d44b 100644 --- a/reactos/dll/directx/wine/d3drm/frame.c +++ b/reactos/dll/directx/wine/d3drm/frame.c @@ -462,66 +462,25 @@ static HRESULT WINAPI d3drm_frame2_QueryInterface(IDirect3DRMFrame2 *iface, REFI TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out); - if (IsEqualGUID(riid, &IID_IDirect3DRMFrame2) - || IsEqualGUID(riid, &IID_IDirect3DRMFrame) - || IsEqualGUID(riid, &IID_IUnknown)) - { - *out = &frame->IDirect3DRMFrame2_iface; - } - else if (IsEqualGUID(riid, &IID_IDirect3DRMFrame3)) - { - *out = &frame->IDirect3DRMFrame3_iface; - } - else - { - *out = NULL; - WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid)); - return E_NOINTERFACE; - } - - IUnknown_AddRef((IUnknown *)*out); - return S_OK; + return IDirect3DRMFrame3_QueryInterface(&frame->IDirect3DRMFrame3_iface, riid, out); } static ULONG WINAPI d3drm_frame2_AddRef(IDirect3DRMFrame2 *iface) { struct d3drm_frame *frame = impl_from_IDirect3DRMFrame2(iface); - ULONG refcount = InterlockedIncrement(&frame->ref); - TRACE("%p increasing refcount to %u.\n", iface, refcount); + TRACE("iface %p.\n", iface); - return refcount; + return IDirect3DRMFrame3_AddRef(&frame->IDirect3DRMFrame3_iface); } static ULONG WINAPI d3drm_frame2_Release(IDirect3DRMFrame2 *iface) { struct d3drm_frame *frame = impl_from_IDirect3DRMFrame2(iface); - ULONG refcount = InterlockedDecrement(&frame->ref); - ULONG i; - TRACE("%p decreasing refcount to %u.\n", iface, refcount); + TRACE("iface %p.\n", iface); - if (!refcount) - { - for (i = 0; i < frame->nb_children; ++i) - { - IDirect3DRMFrame3_Release(frame->children[i]); - } - HeapFree(GetProcessHeap(), 0, frame->children); - for (i = 0; i < frame->nb_visuals; ++i) - { - IDirect3DRMVisual_Release(frame->visuals[i]); - } - HeapFree(GetProcessHeap(), 0, frame->visuals); - for (i = 0; i < frame->nb_lights; ++i) - { - IDirect3DRMLight_Release(frame->lights[i]); - } - HeapFree(GetProcessHeap(), 0, frame->lights); - HeapFree(GetProcessHeap(), 0, frame); - } - - return refcount; + return IDirect3DRMFrame3_Release(&frame->IDirect3DRMFrame3_iface); } static HRESULT WINAPI d3drm_frame2_Clone(IDirect3DRMFrame2 *iface, @@ -1223,25 +1182,68 @@ static HRESULT WINAPI d3drm_frame3_QueryInterface(IDirect3DRMFrame3 *iface, REFI TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out); - return d3drm_frame2_QueryInterface(&frame->IDirect3DRMFrame2_iface, riid, out); + if (IsEqualGUID(riid, &IID_IDirect3DRMFrame2) + || IsEqualGUID(riid, &IID_IDirect3DRMFrame) + || IsEqualGUID(riid, &IID_IDirect3DRMObject) + || IsEqualGUID(riid, &IID_IDirect3DRMVisual) + || IsEqualGUID(riid, &IID_IUnknown)) + { + *out = &frame->IDirect3DRMFrame2_iface; + } + else if (IsEqualGUID(riid, &IID_IDirect3DRMFrame3)) + { + *out = &frame->IDirect3DRMFrame3_iface; + } + else + { + *out = NULL; + WARN("%s not implemented, returning CLASS_E_CLASSNOTAVAILABLE.\n", debugstr_guid(riid)); + return CLASS_E_CLASSNOTAVAILABLE; + } + + IUnknown_AddRef((IUnknown *)*out); + return S_OK; } static ULONG WINAPI d3drm_frame3_AddRef(IDirect3DRMFrame3 *iface) { struct d3drm_frame *frame = impl_from_IDirect3DRMFrame3(iface); + ULONG refcount = InterlockedIncrement(&frame->ref); - TRACE("iface %p.\n", iface); + TRACE("%p increasing refcount to %u.\n", iface, refcount); - return d3drm_frame2_AddRef(&frame->IDirect3DRMFrame2_iface); + return refcount; } static ULONG WINAPI d3drm_frame3_Release(IDirect3DRMFrame3 *iface) { struct d3drm_frame *frame = impl_from_IDirect3DRMFrame3(iface); + ULONG refcount = InterlockedDecrement(&frame->ref); + ULONG i; - TRACE("iface %p.\n", iface); + TRACE("%p decreasing refcount to %u.\n", iface, refcount); - return d3drm_frame2_Release(&frame->IDirect3DRMFrame2_iface); + if (!refcount) + { + for (i = 0; i < frame->nb_children; ++i) + { + IDirect3DRMFrame3_Release(frame->children[i]); + } + HeapFree(GetProcessHeap(), 0, frame->children); + for (i = 0; i < frame->nb_visuals; ++i) + { + IDirect3DRMVisual_Release(frame->visuals[i]); + } + HeapFree(GetProcessHeap(), 0, frame->visuals); + for (i = 0; i < frame->nb_lights; ++i) + { + IDirect3DRMLight_Release(frame->lights[i]); + } + HeapFree(GetProcessHeap(), 0, frame->lights); + HeapFree(GetProcessHeap(), 0, frame); + } + + return refcount; } static HRESULT WINAPI d3drm_frame3_Clone(IDirect3DRMFrame3 *iface, @@ -2293,5 +2295,5 @@ HRESULT Direct3DRMFrame_create(REFIID riid, IUnknown *parent, IUnknown **out) hr = IDirect3DRMFrame3_QueryInterface(&object->IDirect3DRMFrame3_iface, riid, (void **)out); IDirect3DRMFrame3_Release(&object->IDirect3DRMFrame3_iface); - return S_OK; + return hr; } diff --git a/reactos/dll/directx/wine/d3drm/meshbuilder.c b/reactos/dll/directx/wine/d3drm/meshbuilder.c index c65d59d87c6..7c152532a1e 100644 --- a/reactos/dll/directx/wine/d3drm/meshbuilder.c +++ b/reactos/dll/directx/wine/d3drm/meshbuilder.c @@ -343,7 +343,9 @@ static void clean_mesh_builder_data(struct d3drm_mesh_builder *mesh_builder) } mesh_builder->nb_materials = 0; HeapFree(GetProcessHeap(), 0, mesh_builder->materials); + mesh_builder->materials = NULL; HeapFree(GetProcessHeap(), 0, mesh_builder->material_indices); + mesh_builder->material_indices = NULL; } static HRESULT WINAPI d3drm_mesh_builder2_QueryInterface(IDirect3DRMMeshBuilder2 *iface, REFIID riid, void **out) @@ -1235,20 +1237,21 @@ HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *pData, IDirectXFileData *data; char **filename; - hr = IDirectXFileObject_QueryInterface(material_child, &IID_IDirectXFileData, (void **)&data); - if (FAILED(hr)) + if (FAILED(hr = IDirectXFileObject_QueryInterface(material_child, + &IID_IDirectXFileData, (void **)&data))) { IDirectXFileDataReference *reference; - hr = IDirectXFileObject_QueryInterface(material_child, &IID_IDirectXFileDataReference, (void **)&reference); - if (FAILED(hr)) - goto end; - - hr = IDirectXFileDataReference_Resolve(reference, &data); - IDirectXFileDataReference_Release(reference); - if (FAILED(hr)) - goto end; + if (SUCCEEDED(IDirectXFileObject_QueryInterface(material_child, + &IID_IDirectXFileDataReference, (void **)&reference))) + { + hr = IDirectXFileDataReference_Resolve(reference, &data); + IDirectXFileDataReference_Release(reference); + } } + IDirectXFileObject_Release(material_child); + if (FAILED(hr)) + goto end; hr = IDirectXFileData_GetType(data, &guid); if (hr != DXFILE_OK) @@ -1293,6 +1296,7 @@ HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *pData, } } } + IDirectXFileData_Release(data); } else if (hr != DXFILEERR_NOMOREOBJECTS) { @@ -1351,7 +1355,10 @@ HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *pData, if (!This->nb_normals) { /* Compute face normal */ - if (nb_face_indexes > 2) + if (nb_face_indexes > 2 + && faces_vertex_idx_ptr[0] < This->nb_vertices + && faces_vertex_idx_ptr[1] < This->nb_vertices + && faces_vertex_idx_ptr[2] < This->nb_vertices) { D3DVECTOR a, b; diff --git a/reactos/dll/directx/wine/d3drm/viewport.c b/reactos/dll/directx/wine/d3drm/viewport.c index d8bfaa706fd..16edd4de1b1 100644 --- a/reactos/dll/directx/wine/d3drm/viewport.c +++ b/reactos/dll/directx/wine/d3drm/viewport.c @@ -3,9 +3,6 @@ * * Copyright 2012 André Hentschel * - * This file contains the (internal) driver registration functions, - * driver enumeration APIs and DirectDraw creation functions. - * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either diff --git a/reactos/include/psdk/d3drm.h b/reactos/include/psdk/d3drm.h index 07e39c19327..e1e0d234891 100644 --- a/reactos/include/psdk/d3drm.h +++ b/reactos/include/psdk/d3drm.h @@ -353,7 +353,7 @@ DECLARE_INTERFACE_(IDirect3DRM3,IUnknown) STDMETHOD(CreateMaterial)(THIS_ D3DVALUE, IDirect3DRMMaterial2 **material) PURE; STDMETHOD(CreateDevice)(THIS_ DWORD width, DWORD height, IDirect3DRMDevice3 **device) PURE; STDMETHOD(CreateDeviceFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw, - IDirectDrawSurface *surface, IDirect3DRMDevice3 **device) PURE; + IDirectDrawSurface *surface, DWORD flags, IDirect3DRMDevice3 **device) PURE; STDMETHOD(CreateDeviceFromD3D)(THIS_ IDirect3D2 *d3d, IDirect3DDevice2 *d3d_device, IDirect3DRMDevice3 **device) PURE; STDMETHOD(CreateDeviceFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid, @@ -411,7 +411,7 @@ DECLARE_INTERFACE_(IDirect3DRM3,IUnknown) #define IDirect3DRM3_CreateLightRGB(p,a,b,c,d,e) (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e) #define IDirect3DRM3_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b) #define IDirect3DRM3_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c) -#define IDirect3DRM3_CreateDeviceFromSurface(p,a,b,c,d) (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d) +#define IDirect3DRM3_CreateDeviceFromSurface(p,a,b,c,d,e) (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d,e) #define IDirect3DRM3_CreateDeviceFromD3D(p,a,b,c) (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c) #define IDirect3DRM3_CreateDeviceFromClipper(p,a,b,c,d,e) (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e) #define IDirect3DRM3_CreateTextureFromSurface(p,a,b) (p)->lpVtbl->CreateTextureFromSurface(p,a,b) @@ -455,7 +455,7 @@ DECLARE_INTERFACE_(IDirect3DRM3,IUnknown) #define IDirect3DRM3_CreateLightRGB(p,a,b,c,d,e) (p)->CreateLightRGB(a,b,c,d,e) #define IDirect3DRM3_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b) #define IDirect3DRM3_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c) -#define IDirect3DRM3_CreateDeviceFromSurface(p,a,b,c,d) (p)->CreateDeviceFromSurface(a,b,c,d) +#define IDirect3DRM3_CreateDeviceFromSurface(p,a,b,c,d,e) (p)->CreateDeviceFromSurface(a,b,c,d,e) #define IDirect3DRM3_CreateDeviceFromD3D(p,a,b,c) (p)->CreateDeviceFromD3D(a,b,c) #define IDirect3DRM3_CreateDeviceFromClipper(p,a,b,c,d,e) (p)->CreateDeviceFromClipper(a,b,c,d,e) #define IDirect3DRM3_CreateTextureFromSurface(p,a,b) (p)->CreateTextureFromSurface(a,b) diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 663b31bd5d9..9aac3cf6500 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -25,7 +25,7 @@ reactos/dll/directx/wine/amstream # Synced to WineStaging-1.7.47 reactos/dll/directx/wine/d3d8 # Synced to WineStaging-1.7.37 reactos/dll/directx/wine/d3d9 # Synced to WineStaging-1.7.37 reactos/dll/directx/wine/d3dcompiler_43 # Synced to WineStaging-1.7.37 -reactos/dll/directx/wine/d3drm # Synced to WineStaging-1.7.37 +reactos/dll/directx/wine/d3drm # Synced to WineStaging-1.7.47 reactos/dll/directx/wine/d3dx9_24 => 43 # Synced to WineStaging-1.7.37 reactos/dll/directx/wine/d3dxof # Synced to WineStaging-1.7.47 reactos/dll/directx/wine/ddraw # Synced to WineStaging-1.7.37