Author: akhaldi
Date: Tue Jul 21 23:33:10 2015
New Revision: 68528
URL:
http://svn.reactos.org/svn/reactos?rev=68528&view=rev
Log:
[D3DRM] Sync with Wine Staging 1.7.47. CORE-9924
[PSDK] Update d3drm.h.
Modified:
trunk/reactos/dll/directx/wine/d3drm/CMakeLists.txt
trunk/reactos/dll/directx/wine/d3drm/d3drm.c
trunk/reactos/dll/directx/wine/d3drm/d3drm.spec
trunk/reactos/dll/directx/wine/d3drm/d3drm_private.h
trunk/reactos/dll/directx/wine/d3drm/device.c
trunk/reactos/dll/directx/wine/d3drm/face.c
trunk/reactos/dll/directx/wine/d3drm/frame.c
trunk/reactos/dll/directx/wine/d3drm/meshbuilder.c
trunk/reactos/dll/directx/wine/d3drm/viewport.c
trunk/reactos/include/psdk/d3drm.h
trunk/reactos/media/doc/README.WINE
Modified: trunk/reactos/dll/directx/wine/d3drm/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/wine/d3drm/CMa…
==============================================================================
--- trunk/reactos/dll/directx/wine/d3drm/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/wine/d3drm/CMakeLists.txt [iso-8859-1] Tue Jul 21 23:33:10
2015
@@ -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
Modified: trunk/reactos/dll/directx/wine/d3drm/d3drm.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/wine/d3drm/d3d…
==============================================================================
--- trunk/reactos/dll/directx/wine/d3drm/d3drm.c [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/wine/d3drm/d3drm.c [iso-8859-1] Tue Jul 21 23:33:10 2015
@@ -44,7 +44,7 @@
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)
@@ -60,6 +60,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)
@@ -84,8 +90,8 @@
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 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 ULONG WINAPI d3drm2_AddRef(IDirect3DRM2 *iface)
{
struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
-
- return d3drm1_AddRef(&d3drm->IDirect3DRM_iface);
+ ULONG refcount = InterlockedIncrement(&d3drm->ref2);
+
+ 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);
-
- return d3drm1_Release(&d3drm->IDirect3DRM_iface);
+ ULONG refcount = InterlockedDecrement(&d3drm->ref2);
+
+ 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 ULONG WINAPI d3drm3_AddRef(IDirect3DRM3 *iface)
{
struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
-
- return d3drm1_AddRef(&d3drm->IDirect3DRM_iface);
+ ULONG refcount = InterlockedIncrement(&d3drm->ref3);
+
+ 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);
-
- return d3drm1_Release(&d3drm->IDirect3DRM_iface);
+ ULONG refcount = InterlockedDecrement(&d3drm->ref3);
+
+ 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_CreateDeviceFromSurface(IDirect3DRM3 *iface, GUID *guid,
- IDirectDraw *ddraw, IDirectDrawSurface *backbuffer, IDirect3DRMDevice3 **device)
-{
- FIXME("iface %p, guid %s, ddraw %p, backbuffer %p, device %p partial
stub.\n",
- iface, debugstr_guid(guid), ddraw, backbuffer, device);
+ IDirectDraw *ddraw, IDirectDrawSurface *backbuffer, DWORD flags,
IDirect3DRMDevice3 **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 @@
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 @@
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;
+}
Modified: trunk/reactos/dll/directx/wine/d3drm/d3drm.spec
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/wine/d3drm/d3d…
==============================================================================
--- trunk/reactos/dll/directx/wine/d3drm/d3drm.spec [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/wine/d3drm/d3drm.spec [iso-8859-1] Tue Jul 21 23:33:10 2015
@@ -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)
Modified: trunk/reactos/dll/directx/wine/d3drm/d3drm_private.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/wine/d3drm/d3d…
==============================================================================
--- trunk/reactos/dll/directx/wine/d3drm/d3drm_private.h [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/wine/d3drm/d3drm_private.h [iso-8859-1] Tue Jul 21 23:33:10
2015
@@ -58,6 +58,6 @@
DWORD flags;
};
-extern char templates[];
+extern char templates[] DECLSPEC_HIDDEN;
#endif /* __D3DRM_PRIVATE_INCLUDED__ */
Modified: trunk/reactos/dll/directx/wine/d3drm/device.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/wine/d3drm/dev…
==============================================================================
--- trunk/reactos/dll/directx/wine/d3drm/device.c [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/wine/d3drm/device.c [iso-8859-1] Tue Jul 21 23:33:10 2015
@@ -2,9 +2,6 @@
* Implementation of IDirect3DRMDevice Interface
*
* 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
Modified: trunk/reactos/dll/directx/wine/d3drm/face.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/wine/d3drm/fac…
==============================================================================
--- trunk/reactos/dll/directx/wine/d3drm/face.c [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/wine/d3drm/face.c [iso-8859-1] Tue Jul 21 23:33:10 2015
@@ -2,9 +2,6 @@
* Implementation of IDirect3DRMFace Interface
*
* 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
Modified: trunk/reactos/dll/directx/wine/d3drm/frame.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/wine/d3drm/fra…
==============================================================================
--- trunk/reactos/dll/directx/wine/d3drm/frame.c [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/wine/d3drm/frame.c [iso-8859-1] Tue Jul 21 23:33:10 2015
@@ -462,66 +462,25 @@
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);
-
- return refcount;
+
+ TRACE("iface %p.\n", iface);
+
+ 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);
-
- 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;
+
+ TRACE("iface %p.\n", iface);
+
+ return IDirect3DRMFrame3_Release(&frame->IDirect3DRMFrame3_iface);
}
static HRESULT WINAPI d3drm_frame2_Clone(IDirect3DRMFrame2 *iface,
@@ -1223,25 +1182,68 @@
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);
-
- TRACE("iface %p.\n", iface);
-
- return d3drm_frame2_AddRef(&frame->IDirect3DRMFrame2_iface);
+ ULONG refcount = InterlockedIncrement(&frame->ref);
+
+ TRACE("%p increasing refcount to %u.\n", iface, refcount);
+
+ return refcount;
}
static ULONG WINAPI d3drm_frame3_Release(IDirect3DRMFrame3 *iface)
{
struct d3drm_frame *frame = impl_from_IDirect3DRMFrame3(iface);
-
- TRACE("iface %p.\n", iface);
-
- return d3drm_frame2_Release(&frame->IDirect3DRMFrame2_iface);
+ ULONG refcount = InterlockedDecrement(&frame->ref);
+ ULONG i;
+
+ TRACE("%p decreasing refcount to %u.\n", iface, refcount);
+
+ 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 @@
hr = IDirect3DRMFrame3_QueryInterface(&object->IDirect3DRMFrame3_iface, riid,
(void **)out);
IDirect3DRMFrame3_Release(&object->IDirect3DRMFrame3_iface);
- return S_OK;
-}
+ return hr;
+}
Modified: trunk/reactos/dll/directx/wine/d3drm/meshbuilder.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/wine/d3drm/mes…
==============================================================================
--- trunk/reactos/dll/directx/wine/d3drm/meshbuilder.c [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/wine/d3drm/meshbuilder.c [iso-8859-1] Tue Jul 21 23:33:10
2015
@@ -343,7 +343,9 @@
}
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 @@
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 @@
}
}
}
+ IDirectXFileData_Release(data);
}
else if (hr != DXFILEERR_NOMOREOBJECTS)
{
@@ -1351,7 +1355,10 @@
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;
Modified: trunk/reactos/dll/directx/wine/d3drm/viewport.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/wine/d3drm/vie…
==============================================================================
--- trunk/reactos/dll/directx/wine/d3drm/viewport.c [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/wine/d3drm/viewport.c [iso-8859-1] Tue Jul 21 23:33:10 2015
@@ -2,9 +2,6 @@
* Implementation of IDirect3DRMViewport Interface
*
* 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
Modified: trunk/reactos/include/psdk/d3drm.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/d3drm.h?rev=6…
==============================================================================
--- trunk/reactos/include/psdk/d3drm.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/d3drm.h [iso-8859-1] Tue Jul 21 23:33:10 2015
@@ -353,7 +353,7 @@
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 @@
#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 @@
#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)
Modified: trunk/reactos/media/doc/README.WINE
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=…
==============================================================================
--- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original)
+++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Tue Jul 21 23:33:10 2015
@@ -25,7 +25,7 @@
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