2 * Implementation of IDirect3DRM Interface
4 * Copyright 2010 Christian Costa
5 * Copyright 2011 André Hentschel
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #include "wine/debug.h"
29 #include "d3drm_private.h"
31 WINE_DEFAULT_DEBUG_CHANNEL(d3drm
);
34 IDirect3DRM IDirect3DRM_iface
;
35 IDirect3DRM2 IDirect3DRM2_iface
;
36 IDirect3DRM3 IDirect3DRM3_iface
;
40 static const struct IDirect3DRMVtbl Direct3DRM_Vtbl
;
41 static const struct IDirect3DRM2Vtbl Direct3DRM2_Vtbl
;
42 static const struct IDirect3DRM3Vtbl Direct3DRM3_Vtbl
;
44 static inline IDirect3DRMImpl
*impl_from_IDirect3DRM(IDirect3DRM
*iface
)
46 return CONTAINING_RECORD(iface
, IDirect3DRMImpl
, IDirect3DRM_iface
);
49 static inline IDirect3DRMImpl
*impl_from_IDirect3DRM2(IDirect3DRM2
*iface
)
51 return CONTAINING_RECORD(iface
, IDirect3DRMImpl
, IDirect3DRM2_iface
);
54 static inline IDirect3DRMImpl
*impl_from_IDirect3DRM3(IDirect3DRM3
*iface
)
56 return CONTAINING_RECORD(iface
, IDirect3DRMImpl
, IDirect3DRM3_iface
);
59 HRESULT
Direct3DRM_create(IUnknown
** ppObj
)
61 IDirect3DRMImpl
* object
;
63 TRACE("(%p)\n", ppObj
);
65 object
= HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, sizeof(IDirect3DRMImpl
));
68 ERR("Out of memory\n");
72 object
->IDirect3DRM_iface
.lpVtbl
= &Direct3DRM_Vtbl
;
73 object
->IDirect3DRM2_iface
.lpVtbl
= &Direct3DRM2_Vtbl
;
74 object
->IDirect3DRM3_iface
.lpVtbl
= &Direct3DRM3_Vtbl
;
77 *ppObj
= (IUnknown
*)&object
->IDirect3DRM_iface
;
82 /*** IUnknown methods ***/
83 static HRESULT WINAPI
IDirect3DRMImpl_QueryInterface(IDirect3DRM
* iface
, REFIID riid
, void** ppvObject
)
85 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
87 TRACE("(%p/%p)->(%s,%p)\n", iface
, This
, debugstr_guid(riid
), ppvObject
);
91 if(IsEqualGUID(riid
, &IID_IUnknown
) ||
92 IsEqualGUID(riid
, &IID_IDirect3DRM
))
94 *ppvObject
= &This
->IDirect3DRM_iface
;
96 else if(IsEqualGUID(riid
, &IID_IDirect3DRM2
))
98 *ppvObject
= &This
->IDirect3DRM2_iface
;
100 else if(IsEqualGUID(riid
, &IID_IDirect3DRM3
))
102 *ppvObject
= &This
->IDirect3DRM3_iface
;
106 FIXME("interface %s not implemented\n", debugstr_guid(riid
));
107 return E_NOINTERFACE
;
110 IDirect3DRM_AddRef(iface
);
114 static ULONG WINAPI
IDirect3DRMImpl_AddRef(IDirect3DRM
* iface
)
116 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
118 TRACE("(%p/%p)\n", iface
, This
);
120 return InterlockedIncrement(&This
->ref
);
123 static ULONG WINAPI
IDirect3DRMImpl_Release(IDirect3DRM
* iface
)
125 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
126 ULONG ref
= InterlockedDecrement(&This
->ref
);
128 TRACE("(%p/%p)\n", iface
, This
);
131 HeapFree(GetProcessHeap(), 0, This
);
136 /*** IDirect3DRM methods ***/
137 static HRESULT WINAPI
IDirect3DRMImpl_CreateObject(IDirect3DRM
* iface
, REFCLSID rclsid
, LPUNKNOWN pUnkOuter
, REFIID riid
, LPVOID
*ppvObj
)
139 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
141 FIXME("(%p/%p)->(%s,%p,%s,%p): stub\n", iface
, This
, debugstr_guid(rclsid
), pUnkOuter
, debugstr_guid(riid
), ppvObj
);
146 static HRESULT WINAPI
IDirect3DRMImpl_CreateFrame(IDirect3DRM
* iface
, LPDIRECT3DRMFRAME pFrameParent
, LPDIRECT3DRMFRAME
* ppFrame
)
148 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
150 TRACE("(%p/%p)->(%p,%p)\n", iface
, This
, pFrameParent
, ppFrame
);
153 FIXME("(%p/%p): Parent frame not yet supported\n", iface
, This
);
155 return Direct3DRMFrame_create(&IID_IDirect3DRMFrame
, (IUnknown
**)ppFrame
);
158 static HRESULT WINAPI
IDirect3DRMImpl_CreateMesh(IDirect3DRM
* iface
, LPDIRECT3DRMMESH
* ppMesh
)
160 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
162 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, ppMesh
);
167 static HRESULT WINAPI
IDirect3DRMImpl_CreateMeshBuilder(IDirect3DRM
* iface
, LPDIRECT3DRMMESHBUILDER
* ppMeshBuilder
)
169 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
171 TRACE("(%p/%p)->(%p)\n", iface
, This
, ppMeshBuilder
);
173 return Direct3DRMMeshBuilder_create(&IID_IDirect3DRMMeshBuilder
, (IUnknown
**)ppMeshBuilder
);
176 static HRESULT WINAPI
IDirect3DRMImpl_CreateFace(IDirect3DRM
* iface
, LPDIRECT3DRMFACE
* ppFace
)
178 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
180 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, ppFace
);
185 static HRESULT WINAPI
IDirect3DRMImpl_CreateAnimation(IDirect3DRM
* iface
, LPDIRECT3DRMANIMATION
* ppAnimation
)
187 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
189 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, ppAnimation
);
194 static HRESULT WINAPI
IDirect3DRMImpl_CreateAnimationSet(IDirect3DRM
* iface
, LPDIRECT3DRMANIMATIONSET
* ppAnimationSet
)
196 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
198 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, ppAnimationSet
);
203 static HRESULT WINAPI
IDirect3DRMImpl_CreateTexture(IDirect3DRM
* iface
, LPD3DRMIMAGE pImage
, LPDIRECT3DRMTEXTURE
* ppTexture
)
205 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
207 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, pImage
, ppTexture
);
212 static HRESULT WINAPI
IDirect3DRMImpl_CreateLight(IDirect3DRM
* iface
, D3DRMLIGHTTYPE type
, D3DCOLOR color
, LPDIRECT3DRMLIGHT
* ppLight
)
214 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
216 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface
, This
, type
, color
, ppLight
);
221 static HRESULT WINAPI
IDirect3DRMImpl_CreateLightRGB(IDirect3DRM
* iface
, D3DRMLIGHTTYPE type
, D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
, LPDIRECT3DRMLIGHT
* ppLight
)
223 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
225 FIXME("(%p/%p)->(%d,%f,%f,%f,%p): stub\n", iface
, This
, type
, red
, green
, blue
, ppLight
);
230 static HRESULT WINAPI
IDirect3DRMImpl_Material(IDirect3DRM
* iface
, D3DVALUE m
, LPDIRECT3DRMMATERIAL
* ppMaterial
)
232 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
234 FIXME("(%p/%p)->(%f,%p): stub\n", iface
, This
, m
, ppMaterial
);
239 static HRESULT WINAPI
IDirect3DRMImpl_CreateDevice(IDirect3DRM
* iface
, DWORD width
, DWORD height
, LPDIRECT3DRMDEVICE
* ppDevice
)
241 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
243 FIXME("(%p/%p)->(%u,%u,%p): partial stub\n", iface
, This
, width
, height
, ppDevice
);
245 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice
, (IUnknown
**)ppDevice
);
248 static HRESULT WINAPI
IDirect3DRMImpl_CreateDeviceFromSurface(IDirect3DRM
* iface
, LPGUID pGUID
, LPDIRECTDRAW pDD
, LPDIRECTDRAWSURFACE pDDSBack
, LPDIRECT3DRMDEVICE
* ppDevice
)
250 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
252 FIXME("(%p/%p)->(%s,%p,%p,%p): partial stub\n", iface
, This
, debugstr_guid(pGUID
), pDD
,
255 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice
, (IUnknown
**)ppDevice
);
258 static HRESULT WINAPI
IDirect3DRMImpl_CreateDeviceFromD3D(IDirect3DRM
* iface
, LPDIRECT3D pD3D
, LPDIRECT3DDEVICE pD3DDev
, LPDIRECT3DRMDEVICE
* ppDevice
)
260 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
262 FIXME("(%p/%p)->(%p,%p,%p): partial stub\n", iface
, This
, pD3D
, pD3DDev
, ppDevice
);
264 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice
, (IUnknown
**)ppDevice
);
267 static HRESULT WINAPI
IDirect3DRMImpl_CreateDeviceFromClipper(IDirect3DRM
* iface
, LPDIRECTDRAWCLIPPER pDDClipper
, LPGUID pGUID
, int width
, int height
, LPDIRECT3DRMDEVICE
* ppDevice
)
269 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
271 FIXME("(%p/%p)->(%p,%s,%d,%d,%p): partial stub\n", iface
, This
, pDDClipper
,
272 debugstr_guid(pGUID
), width
, height
, ppDevice
);
274 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice
, (IUnknown
**)ppDevice
);
277 static HRESULT WINAPI
IDirect3DRMImpl_CreateTextureFromSurface(IDirect3DRM
* iface
, LPDIRECTDRAWSURFACE pDDS
, LPDIRECT3DRMTEXTURE
* ppTexture
)
279 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
281 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, pDDS
, ppTexture
);
286 static HRESULT WINAPI
IDirect3DRMImpl_CreateShadow(IDirect3DRM
* iface
, LPDIRECT3DRMVISUAL pVisual
, LPDIRECT3DRMLIGHT pLight
, D3DVALUE px
, D3DVALUE py
, D3DVALUE pz
, D3DVALUE nx
, D3DVALUE ny
, D3DVALUE nz
, LPDIRECT3DRMVISUAL
* ppVisual
)
288 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
290 FIXME("(%p/%p)->(%p,%p,%f,%f,%f,%f,%f,%f,%p): stub\n", iface
, This
, pVisual
, pLight
, px
, py
, pz
, nx
, ny
, nz
, ppVisual
);
295 static HRESULT WINAPI
IDirect3DRMImpl_CreateViewport(IDirect3DRM
* iface
, LPDIRECT3DRMDEVICE pDevice
, LPDIRECT3DRMFRAME pFrame
, DWORD xpos
, DWORD ypos
, DWORD width
, DWORD height
, LPDIRECT3DRMVIEWPORT
* ppViewport
)
297 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
299 FIXME("(%p/%p)->(%p,%p,%d,%d,%d,%d,%p): partial stub\n", iface
, This
, pDevice
, pFrame
,
300 xpos
, ypos
, width
, height
, ppViewport
);
302 return Direct3DRMViewport_create(&IID_IDirect3DRMViewport
, (IUnknown
**)ppViewport
);
305 static HRESULT WINAPI
IDirect3DRMImpl_CreateWrap(IDirect3DRM
* iface
, D3DRMWRAPTYPE type
, LPDIRECT3DRMFRAME pFrame
, D3DVALUE ox
, D3DVALUE oy
, D3DVALUE oz
, D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
, D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
, D3DVALUE ou
, D3DVALUE ov
, D3DVALUE su
, D3DVALUE sv
, LPDIRECT3DRMWRAP
* ppWrap
)
307 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
309 FIXME("(%p/%p)->(%d,%p,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%p): stub\n", iface
, This
, type
, pFrame
, ox
, oy
, oz
, dx
, dy
, dz
, ux
, uy
, uz
, ou
, ov
, su
, sv
, ppWrap
);
314 static HRESULT WINAPI
IDirect3DRMImpl_CreateUserVisual(IDirect3DRM
* iface
, D3DRMUSERVISUALCALLBACK cb
, LPVOID pArg
, LPDIRECT3DRMUSERVISUAL
* ppUserVisual
)
316 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
318 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, cb
, pArg
, ppUserVisual
);
323 static HRESULT WINAPI
IDirect3DRMImpl_LoadTexture(IDirect3DRM
* iface
, const char * filename
, LPDIRECT3DRMTEXTURE
* ppTexture
)
325 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
327 FIXME("(%p/%p)->(%s,%p): stub\n", iface
, This
, filename
, ppTexture
);
332 static HRESULT WINAPI
IDirect3DRMImpl_LoadTextureFromResource(IDirect3DRM
* iface
, HRSRC rs
, LPDIRECT3DRMTEXTURE
* ppTexture
)
334 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
336 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, rs
, ppTexture
);
341 static HRESULT WINAPI
IDirect3DRMImpl_SetSearchPath(IDirect3DRM
* iface
, LPCSTR path
)
343 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
345 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, path
);
350 static HRESULT WINAPI
IDirect3DRMImpl_AddSearchPath(IDirect3DRM
* iface
, LPCSTR path
)
352 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
354 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, path
);
359 static HRESULT WINAPI
IDirect3DRMImpl_GetSearchPath(IDirect3DRM
* iface
, DWORD
*size_return
, LPSTR path_return
)
361 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
363 FIXME("(%p/%p)->(%p,%s): stub\n", iface
, This
, size_return
, path_return
);
368 static HRESULT WINAPI
IDirect3DRMImpl_SetDefaultTextureColors(IDirect3DRM
* iface
, DWORD nb_colors
)
370 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
372 FIXME("(%p/%p)->(%d): stub\n", iface
, This
, nb_colors
);
377 static HRESULT WINAPI
IDirect3DRMImpl_SetDefaultTextureShades(IDirect3DRM
* iface
, DWORD nb_shades
)
379 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
381 FIXME("(%p/%p)->(%d): stub\n", iface
, This
, nb_shades
);
386 static HRESULT WINAPI
IDirect3DRMImpl_GetDevices(IDirect3DRM
* iface
, LPDIRECT3DRMDEVICEARRAY
* ppDeviceArray
)
388 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
390 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, ppDeviceArray
);
395 static HRESULT WINAPI
IDirect3DRMImpl_GetNamedObject(IDirect3DRM
* iface
, const char * pName
, LPDIRECT3DRMOBJECT
* ppObject
)
397 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
399 FIXME("(%p/%p)->(%s,%p): stub\n", iface
, This
, pName
, ppObject
);
404 static HRESULT WINAPI
IDirect3DRMImpl_EnumerateObjects(IDirect3DRM
* iface
, D3DRMOBJECTCALLBACK cb
, LPVOID pArg
)
406 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
408 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, cb
, pArg
);
413 static HRESULT WINAPI
IDirect3DRMImpl_Load(IDirect3DRM
* iface
, LPVOID pObjSource
, LPVOID pObjID
, LPIID
* ppGUIDs
, DWORD nb_GUIDs
, D3DRMLOADOPTIONS LOFlags
, D3DRMLOADCALLBACK LoadProc
, LPVOID pArgLP
, D3DRMLOADTEXTURECALLBACK LoadTextureProc
, LPVOID pArgLTP
, LPDIRECT3DRMFRAME pParentFrame
)
415 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
417 FIXME("(%p/%p)->(%p,%p,%p,%d,%d,%p,%p,%p,%p,%p): stub\n", iface
, This
, pObjSource
, pObjID
, ppGUIDs
, nb_GUIDs
, LOFlags
, LoadProc
, pArgLP
, LoadTextureProc
, pArgLTP
, pParentFrame
);
422 static HRESULT WINAPI
IDirect3DRMImpl_Tick(IDirect3DRM
* iface
, D3DVALUE tick
)
424 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM(iface
);
426 FIXME("(%p/%p)->(%f): stub\n", iface
, This
, tick
);
431 static const struct IDirect3DRMVtbl Direct3DRM_Vtbl
=
433 IDirect3DRMImpl_QueryInterface
,
434 IDirect3DRMImpl_AddRef
,
435 IDirect3DRMImpl_Release
,
436 IDirect3DRMImpl_CreateObject
,
437 IDirect3DRMImpl_CreateFrame
,
438 IDirect3DRMImpl_CreateMesh
,
439 IDirect3DRMImpl_CreateMeshBuilder
,
440 IDirect3DRMImpl_CreateFace
,
441 IDirect3DRMImpl_CreateAnimation
,
442 IDirect3DRMImpl_CreateAnimationSet
,
443 IDirect3DRMImpl_CreateTexture
,
444 IDirect3DRMImpl_CreateLight
,
445 IDirect3DRMImpl_CreateLightRGB
,
446 IDirect3DRMImpl_Material
,
447 IDirect3DRMImpl_CreateDevice
,
448 IDirect3DRMImpl_CreateDeviceFromSurface
,
449 IDirect3DRMImpl_CreateDeviceFromD3D
,
450 IDirect3DRMImpl_CreateDeviceFromClipper
,
451 IDirect3DRMImpl_CreateTextureFromSurface
,
452 IDirect3DRMImpl_CreateShadow
,
453 IDirect3DRMImpl_CreateViewport
,
454 IDirect3DRMImpl_CreateWrap
,
455 IDirect3DRMImpl_CreateUserVisual
,
456 IDirect3DRMImpl_LoadTexture
,
457 IDirect3DRMImpl_LoadTextureFromResource
,
458 IDirect3DRMImpl_SetSearchPath
,
459 IDirect3DRMImpl_AddSearchPath
,
460 IDirect3DRMImpl_GetSearchPath
,
461 IDirect3DRMImpl_SetDefaultTextureColors
,
462 IDirect3DRMImpl_SetDefaultTextureShades
,
463 IDirect3DRMImpl_GetDevices
,
464 IDirect3DRMImpl_GetNamedObject
,
465 IDirect3DRMImpl_EnumerateObjects
,
466 IDirect3DRMImpl_Load
,
471 /*** IUnknown methods ***/
472 static HRESULT WINAPI
IDirect3DRM2Impl_QueryInterface(IDirect3DRM2
* iface
, REFIID riid
,
475 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
476 return IDirect3DRM_QueryInterface(&This
->IDirect3DRM_iface
, riid
, ppvObject
);
479 static ULONG WINAPI
IDirect3DRM2Impl_AddRef(IDirect3DRM2
* iface
)
481 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
483 TRACE("(%p/%p)\n", iface
, This
);
485 return InterlockedIncrement(&This
->ref
);
488 static ULONG WINAPI
IDirect3DRM2Impl_Release(IDirect3DRM2
* iface
)
490 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
491 ULONG ref
= InterlockedDecrement(&This
->ref
);
493 TRACE("(%p/%p)\n", iface
, This
);
496 HeapFree(GetProcessHeap(), 0, This
);
501 /*** IDirect3DRM2 methods ***/
502 static HRESULT WINAPI
IDirect3DRM2Impl_CreateObject(IDirect3DRM2
* iface
, REFCLSID rclsid
,
503 LPUNKNOWN pUnkOuter
, REFIID riid
,
506 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
508 FIXME("(%p/%p)->(%s,%p,%s,%p): stub\n", iface
, This
, debugstr_guid(rclsid
), pUnkOuter
,
509 debugstr_guid(riid
), ppvObj
);
514 static HRESULT WINAPI
IDirect3DRM2Impl_CreateFrame(IDirect3DRM2
* iface
,
515 LPDIRECT3DRMFRAME pFrameParent
,
516 LPDIRECT3DRMFRAME2
* ppFrame
)
518 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
520 TRACE("(%p/%p)->(%p,%p)\n", iface
, This
, pFrameParent
, ppFrame
);
523 FIXME("(%p/%p): Parent frame not yet supported\n", iface
, This
);
525 return Direct3DRMFrame_create(&IID_IDirect3DRMFrame2
, (IUnknown
**)ppFrame
);
528 static HRESULT WINAPI
IDirect3DRM2Impl_CreateMesh(IDirect3DRM2
* iface
, LPDIRECT3DRMMESH
* ppMesh
)
530 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
532 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, ppMesh
);
537 static HRESULT WINAPI
IDirect3DRM2Impl_CreateMeshBuilder(IDirect3DRM2
* iface
,
538 LPDIRECT3DRMMESHBUILDER2
* ppMeshBuilder
)
540 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
542 TRACE("(%p/%p)->(%p)\n", iface
, This
, ppMeshBuilder
);
544 return Direct3DRMMeshBuilder_create(&IID_IDirect3DRMMeshBuilder2
, (IUnknown
**)ppMeshBuilder
);
547 static HRESULT WINAPI
IDirect3DRM2Impl_CreateFace(IDirect3DRM2
* iface
, LPDIRECT3DRMFACE
* ppFace
)
549 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
551 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, ppFace
);
556 static HRESULT WINAPI
IDirect3DRM2Impl_CreateAnimation(IDirect3DRM2
* iface
,
557 LPDIRECT3DRMANIMATION
* ppAnimation
)
559 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
561 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, ppAnimation
);
566 static HRESULT WINAPI
IDirect3DRM2Impl_CreateAnimationSet(IDirect3DRM2
* iface
,
567 LPDIRECT3DRMANIMATIONSET
* ppAnimationSet
)
569 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
571 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, ppAnimationSet
);
576 static HRESULT WINAPI
IDirect3DRM2Impl_CreateTexture(IDirect3DRM2
* iface
, LPD3DRMIMAGE pImage
,
577 LPDIRECT3DRMTEXTURE2
* ppTexture
)
579 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
581 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, pImage
, ppTexture
);
586 static HRESULT WINAPI
IDirect3DRM2Impl_CreateLight(IDirect3DRM2
* iface
, D3DRMLIGHTTYPE type
,
587 D3DCOLOR color
, LPDIRECT3DRMLIGHT
* ppLight
)
589 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
591 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface
, This
, type
, color
, ppLight
);
596 static HRESULT WINAPI
IDirect3DRM2Impl_CreateLightRGB(IDirect3DRM2
* iface
, D3DRMLIGHTTYPE type
,
597 D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
,
598 LPDIRECT3DRMLIGHT
* ppLight
)
600 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
602 FIXME("(%p/%p)->(%d,%f,%f,%f,%p): stub\n", iface
, This
, type
, red
, green
, blue
, ppLight
);
607 static HRESULT WINAPI
IDirect3DRM2Impl_Material(IDirect3DRM2
* iface
, D3DVALUE m
,
608 LPDIRECT3DRMMATERIAL
* ppMaterial
)
610 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
612 FIXME("(%p/%p)->(%f,%p): stub\n", iface
, This
, m
, ppMaterial
);
617 static HRESULT WINAPI
IDirect3DRM2Impl_CreateDevice(IDirect3DRM2
* iface
, DWORD width
, DWORD height
,
618 LPDIRECT3DRMDEVICE2
* ppDevice
)
620 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
622 FIXME("(%p/%p)->(%u,%u,%p): partial stub\n", iface
, This
, width
, height
, ppDevice
);
624 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice2
, (IUnknown
**)ppDevice
);
627 static HRESULT WINAPI
IDirect3DRM2Impl_CreateDeviceFromSurface(IDirect3DRM2
* iface
, LPGUID pGUID
,
629 LPDIRECTDRAWSURFACE pDDSBack
,
630 LPDIRECT3DRMDEVICE2
* ppDevice
)
632 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
634 FIXME("(%p/%p)->(%s,%p,%p,%p): partial stub\n", iface
, This
, debugstr_guid(pGUID
),
635 pDD
, pDDSBack
, ppDevice
);
637 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice2
, (IUnknown
**)ppDevice
);
640 static HRESULT WINAPI
IDirect3DRM2Impl_CreateDeviceFromD3D(IDirect3DRM2
* iface
, LPDIRECT3D2 pD3D
,
641 LPDIRECT3DDEVICE2 pD3DDev
,
642 LPDIRECT3DRMDEVICE2
* ppDevice
)
644 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
646 FIXME("(%p/%p)->(%p,%p,%p): partial stub\n", iface
, This
, pD3D
, pD3DDev
, ppDevice
);
648 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice2
, (IUnknown
**)ppDevice
);
651 static HRESULT WINAPI
IDirect3DRM2Impl_CreateDeviceFromClipper(IDirect3DRM2
* iface
,
652 LPDIRECTDRAWCLIPPER pDDClipper
,
653 LPGUID pGUID
, int width
, int height
,
654 LPDIRECT3DRMDEVICE2
* ppDevice
)
656 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
658 FIXME("(%p/%p)->(%p,%s,%d,%d,%p): partial stub\n", iface
, This
, pDDClipper
,
659 debugstr_guid(pGUID
), width
, height
, ppDevice
);
661 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice2
, (IUnknown
**)ppDevice
);
664 static HRESULT WINAPI
IDirect3DRM2Impl_CreateTextureFromSurface(IDirect3DRM2
* iface
,
665 LPDIRECTDRAWSURFACE pDDS
,
666 LPDIRECT3DRMTEXTURE2
* ppTexture
)
668 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
670 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, pDDS
, ppTexture
);
675 static HRESULT WINAPI
IDirect3DRM2Impl_CreateShadow(IDirect3DRM2
* iface
, LPDIRECT3DRMVISUAL pVisual
,
676 LPDIRECT3DRMLIGHT pLight
,
677 D3DVALUE px
, D3DVALUE py
, D3DVALUE pz
,
678 D3DVALUE nx
, D3DVALUE ny
, D3DVALUE nz
,
679 LPDIRECT3DRMVISUAL
* ppVisual
)
681 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
683 FIXME("(%p/%p)->(%p,%p,%f,%f,%f,%f,%f,%f,%p): stub\n", iface
, This
, pVisual
, pLight
, px
, py
, pz
,
684 nx
, ny
, nz
, ppVisual
);
689 static HRESULT WINAPI
IDirect3DRM2Impl_CreateViewport(IDirect3DRM2
* iface
,
690 LPDIRECT3DRMDEVICE pDevice
,
691 LPDIRECT3DRMFRAME pFrame
,
692 DWORD xpos
, DWORD ypos
,
693 DWORD width
, DWORD height
,
694 LPDIRECT3DRMVIEWPORT
* ppViewport
)
696 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
698 FIXME("(%p/%p)->(%p,%p,%d,%d,%d,%d,%p): partial stub\n", iface
, This
, pDevice
, pFrame
,
699 xpos
, ypos
, width
, height
, ppViewport
);
701 return Direct3DRMViewport_create(&IID_IDirect3DRMViewport
, (IUnknown
**)ppViewport
);
704 static HRESULT WINAPI
IDirect3DRM2Impl_CreateWrap(IDirect3DRM2
* iface
, D3DRMWRAPTYPE type
,
705 LPDIRECT3DRMFRAME pFrame
,
706 D3DVALUE ox
, D3DVALUE oy
, D3DVALUE oz
,
707 D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
,
708 D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
,
709 D3DVALUE ou
, D3DVALUE ov
, D3DVALUE su
,
710 D3DVALUE sv
, LPDIRECT3DRMWRAP
* ppWrap
)
712 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
714 FIXME("(%p/%p)->(%d,%p,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%p): stub\n", iface
, This
, type
,
715 pFrame
, ox
, oy
, oz
, dx
, dy
, dz
, ux
, uy
, uz
, ou
, ov
, su
, sv
, ppWrap
);
720 static HRESULT WINAPI
IDirect3DRM2Impl_CreateUserVisual(IDirect3DRM2
* iface
,
721 D3DRMUSERVISUALCALLBACK cb
, LPVOID pArg
,
722 LPDIRECT3DRMUSERVISUAL
* ppUserVisual
)
724 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
726 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, cb
, pArg
, ppUserVisual
);
731 static HRESULT WINAPI
IDirect3DRM2Impl_LoadTexture(IDirect3DRM2
* iface
, const char * filename
,
732 LPDIRECT3DRMTEXTURE2
* ppTexture
)
734 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
736 FIXME("(%p/%p)->(%s,%p): stub\n", iface
, This
, filename
, ppTexture
);
741 static HRESULT WINAPI
IDirect3DRM2Impl_LoadTextureFromResource(IDirect3DRM2
* iface
, HMODULE hModule
,
742 LPCSTR strName
, LPCSTR strType
,
743 LPDIRECT3DRMTEXTURE2
* ppTexture
)
745 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
747 FIXME("(%p/%p)->(%p,%p,%p,%p): stub\n", iface
, This
, hModule
, strName
, strType
, ppTexture
);
752 static HRESULT WINAPI
IDirect3DRM2Impl_SetSearchPath(IDirect3DRM2
* iface
, LPCSTR path
)
754 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
756 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, path
);
761 static HRESULT WINAPI
IDirect3DRM2Impl_AddSearchPath(IDirect3DRM2
* iface
, LPCSTR path
)
763 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
765 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, path
);
770 static HRESULT WINAPI
IDirect3DRM2Impl_GetSearchPath(IDirect3DRM2
* iface
, DWORD
*size_return
,
773 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
775 FIXME("(%p/%p)->(%p,%s): stub\n", iface
, This
, size_return
, path_return
);
780 static HRESULT WINAPI
IDirect3DRM2Impl_SetDefaultTextureColors(IDirect3DRM2
* iface
, DWORD nb_colors
)
782 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
784 FIXME("(%p/%p)->(%d): stub\n", iface
, This
, nb_colors
);
789 static HRESULT WINAPI
IDirect3DRM2Impl_SetDefaultTextureShades(IDirect3DRM2
* iface
, DWORD nb_shades
)
791 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
793 FIXME("(%p/%p)->(%d): stub\n", iface
, This
, nb_shades
);
798 static HRESULT WINAPI
IDirect3DRM2Impl_GetDevices(IDirect3DRM2
* iface
,
799 LPDIRECT3DRMDEVICEARRAY
* ppDeviceArray
)
801 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
803 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, ppDeviceArray
);
808 static HRESULT WINAPI
IDirect3DRM2Impl_GetNamedObject(IDirect3DRM2
* iface
, const char * pName
,
809 LPDIRECT3DRMOBJECT
* ppObject
)
811 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
813 FIXME("(%p/%p)->(%s,%p): stub\n", iface
, This
, pName
, ppObject
);
818 static HRESULT WINAPI
IDirect3DRM2Impl_EnumerateObjects(IDirect3DRM2
* iface
, D3DRMOBJECTCALLBACK cb
,
821 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
823 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, cb
, pArg
);
828 static HRESULT WINAPI
IDirect3DRM2Impl_Load(IDirect3DRM2
* iface
, LPVOID pObjSource
, LPVOID pObjID
,
829 LPIID
* ppGUIDs
, DWORD nb_GUIDs
,
830 D3DRMLOADOPTIONS LOFlags
, D3DRMLOADCALLBACK LoadProc
,
831 LPVOID pArgLP
, D3DRMLOADTEXTURECALLBACK LoadTextureProc
,
832 LPVOID pArgLTP
, LPDIRECT3DRMFRAME pParentFrame
)
834 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
836 FIXME("(%p/%p)->(%p,%p,%p,%d,%d,%p,%p,%p,%p,%p): stub\n", iface
, This
, pObjSource
, pObjID
,
837 ppGUIDs
, nb_GUIDs
, LOFlags
, LoadProc
, pArgLP
, LoadTextureProc
, pArgLTP
, pParentFrame
);
842 static HRESULT WINAPI
IDirect3DRM2Impl_Tick(IDirect3DRM2
* iface
, D3DVALUE tick
)
844 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
846 FIXME("(%p/%p)->(%f): stub\n", iface
, This
, tick
);
851 static HRESULT WINAPI
IDirect3DRM2Impl_CreateProgressiveMesh(IDirect3DRM2
* iface
,
852 LPDIRECT3DRMPROGRESSIVEMESH
* ppMesh
)
854 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM2(iface
);
856 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, ppMesh
);
861 static const struct IDirect3DRM2Vtbl Direct3DRM2_Vtbl
=
863 IDirect3DRM2Impl_QueryInterface
,
864 IDirect3DRM2Impl_AddRef
,
865 IDirect3DRM2Impl_Release
,
866 IDirect3DRM2Impl_CreateObject
,
867 IDirect3DRM2Impl_CreateFrame
,
868 IDirect3DRM2Impl_CreateMesh
,
869 IDirect3DRM2Impl_CreateMeshBuilder
,
870 IDirect3DRM2Impl_CreateFace
,
871 IDirect3DRM2Impl_CreateAnimation
,
872 IDirect3DRM2Impl_CreateAnimationSet
,
873 IDirect3DRM2Impl_CreateTexture
,
874 IDirect3DRM2Impl_CreateLight
,
875 IDirect3DRM2Impl_CreateLightRGB
,
876 IDirect3DRM2Impl_Material
,
877 IDirect3DRM2Impl_CreateDevice
,
878 IDirect3DRM2Impl_CreateDeviceFromSurface
,
879 IDirect3DRM2Impl_CreateDeviceFromD3D
,
880 IDirect3DRM2Impl_CreateDeviceFromClipper
,
881 IDirect3DRM2Impl_CreateTextureFromSurface
,
882 IDirect3DRM2Impl_CreateShadow
,
883 IDirect3DRM2Impl_CreateViewport
,
884 IDirect3DRM2Impl_CreateWrap
,
885 IDirect3DRM2Impl_CreateUserVisual
,
886 IDirect3DRM2Impl_LoadTexture
,
887 IDirect3DRM2Impl_LoadTextureFromResource
,
888 IDirect3DRM2Impl_SetSearchPath
,
889 IDirect3DRM2Impl_AddSearchPath
,
890 IDirect3DRM2Impl_GetSearchPath
,
891 IDirect3DRM2Impl_SetDefaultTextureColors
,
892 IDirect3DRM2Impl_SetDefaultTextureShades
,
893 IDirect3DRM2Impl_GetDevices
,
894 IDirect3DRM2Impl_GetNamedObject
,
895 IDirect3DRM2Impl_EnumerateObjects
,
896 IDirect3DRM2Impl_Load
,
897 IDirect3DRM2Impl_Tick
,
898 IDirect3DRM2Impl_CreateProgressiveMesh
902 /*** IUnknown methods ***/
903 static HRESULT WINAPI
IDirect3DRM3Impl_QueryInterface(IDirect3DRM3
* iface
, REFIID riid
,
906 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
907 return IDirect3DRM_QueryInterface(&This
->IDirect3DRM_iface
, riid
, ppvObject
);
910 static ULONG WINAPI
IDirect3DRM3Impl_AddRef(IDirect3DRM3
* iface
)
912 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
914 TRACE("(%p/%p)\n", iface
, This
);
916 return InterlockedIncrement(&This
->ref
);
919 static ULONG WINAPI
IDirect3DRM3Impl_Release(IDirect3DRM3
* iface
)
921 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
922 ULONG ref
= InterlockedDecrement(&This
->ref
);
924 TRACE("(%p/%p)\n", iface
, This
);
927 HeapFree(GetProcessHeap(), 0, This
);
932 /*** IDirect3DRM3 methods ***/
933 static HRESULT WINAPI
IDirect3DRM3Impl_CreateObject(IDirect3DRM3
* iface
, REFCLSID rclsid
,
934 LPUNKNOWN unkwn
, REFIID riid
, LPVOID
* object
)
936 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
938 FIXME("(%p/%p)->(%s,%p,%s,%p): stub\n", iface
, This
, debugstr_guid(rclsid
), unkwn
,
939 debugstr_guid(riid
), object
);
944 static HRESULT WINAPI
IDirect3DRM3Impl_CreateFrame(IDirect3DRM3
* iface
,
945 LPDIRECT3DRMFRAME3 FrameParent
,
946 LPDIRECT3DRMFRAME3
* Frame
)
948 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
950 TRACE("(%p/%p)->(%p,%p)\n", iface
, This
, FrameParent
, Frame
);
953 FIXME("(%p/%p): Parent frame not yet supported\n", iface
, This
);
955 return Direct3DRMFrame_create(&IID_IDirect3DRMFrame3
, (IUnknown
**)Frame
);
958 static HRESULT WINAPI
IDirect3DRM3Impl_CreateMesh(IDirect3DRM3
* iface
, LPDIRECT3DRMMESH
* Mesh
)
960 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
962 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, Mesh
);
967 static HRESULT WINAPI
IDirect3DRM3Impl_CreateMeshBuilder(IDirect3DRM3
* iface
,
968 LPDIRECT3DRMMESHBUILDER3
* ppMeshBuilder
)
970 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
972 TRACE("(%p/%p)->(%p)\n", iface
, This
, ppMeshBuilder
);
974 return Direct3DRMMeshBuilder_create(&IID_IDirect3DRMMeshBuilder3
, (IUnknown
**)ppMeshBuilder
);
977 static HRESULT WINAPI
IDirect3DRM3Impl_CreateFace(IDirect3DRM3
* iface
, LPDIRECT3DRMFACE2
* Face
)
979 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
981 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, Face
);
986 static HRESULT WINAPI
IDirect3DRM3Impl_CreateAnimation(IDirect3DRM3
* iface
,
987 LPDIRECT3DRMANIMATION2
* Animation
)
989 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
991 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, Animation
);
996 static HRESULT WINAPI
IDirect3DRM3Impl_CreateAnimationSet(IDirect3DRM3
* iface
,
997 LPDIRECT3DRMANIMATIONSET2
* AnimationSet
)
999 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1001 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, AnimationSet
);
1006 static HRESULT WINAPI
IDirect3DRM3Impl_CreateTexture(IDirect3DRM3
* iface
, LPD3DRMIMAGE Image
,
1007 LPDIRECT3DRMTEXTURE3
* Texture
)
1009 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1011 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, Image
, Texture
);
1016 static HRESULT WINAPI
IDirect3DRM3Impl_CreateLight(IDirect3DRM3
* iface
, D3DRMLIGHTTYPE type
,
1017 D3DCOLOR color
, LPDIRECT3DRMLIGHT
* Light
)
1019 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1021 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface
, This
, type
, color
, Light
);
1026 static HRESULT WINAPI
IDirect3DRM3Impl_CreateLightRGB(IDirect3DRM3
* iface
, D3DRMLIGHTTYPE type
,
1027 D3DVALUE red
, D3DVALUE green
, D3DVALUE blue
,
1028 LPDIRECT3DRMLIGHT
* Light
)
1030 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1032 FIXME("(%p/%p)->(%d,%f,%f,%f,%p): stub\n", iface
, This
, type
, red
, green
, blue
, Light
);
1037 static HRESULT WINAPI
IDirect3DRM3Impl_Material(IDirect3DRM3
* iface
, D3DVALUE m
,
1038 LPDIRECT3DRMMATERIAL2
* Material
)
1040 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1042 FIXME("(%p/%p)->(%f,%p): stub\n", iface
, This
, m
, Material
);
1047 static HRESULT WINAPI
IDirect3DRM3Impl_CreateDevice(IDirect3DRM3
* iface
, DWORD width
, DWORD height
,
1048 LPDIRECT3DRMDEVICE3
* device
)
1050 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1052 FIXME("(%p/%p)->(%d,%d,%p): partial stub\n", iface
, This
, width
, height
, device
);
1054 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice3
, (IUnknown
**)device
);
1057 static HRESULT WINAPI
IDirect3DRM3Impl_CreateDeviceFromSurface(IDirect3DRM3
* iface
, LPGUID pGUID
,
1059 LPDIRECTDRAWSURFACE back
,
1060 LPDIRECT3DRMDEVICE3
* device
)
1062 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1064 FIXME("(%p/%p)->(%s,%p,%p,%p): partial stub\n", iface
, This
, debugstr_guid(pGUID
), dd
, back
, device
);
1066 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice3
, (IUnknown
**)device
);
1069 static HRESULT WINAPI
IDirect3DRM3Impl_CreateDeviceFromD3D(IDirect3DRM3
* iface
, LPDIRECT3D2 d3d
,
1070 LPDIRECT3DDEVICE2 d3ddev
,
1071 LPDIRECT3DRMDEVICE3
* device
)
1073 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1075 FIXME("(%p/%p)->(%p,%p,%p): partial stub\n", iface
, This
, d3d
, d3ddev
, device
);
1077 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice3
, (IUnknown
**)device
);
1080 static HRESULT WINAPI
IDirect3DRM3Impl_CreateDeviceFromClipper(IDirect3DRM3
* iface
,
1081 LPDIRECTDRAWCLIPPER clipper
,
1082 LPGUID GUID
, int width
, int height
,
1083 LPDIRECT3DRMDEVICE3
* device
)
1085 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1087 FIXME("(%p/%p)->(%p,%s,%d,%d,%p): partial stub\n", iface
, This
, clipper
, debugstr_guid(GUID
),
1088 width
, height
, device
);
1090 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice3
, (IUnknown
**)device
);
1093 static HRESULT WINAPI
IDirect3DRM3Impl_CreateShadow(IDirect3DRM3
* iface
, LPUNKNOWN Visual1
,
1094 LPDIRECT3DRMLIGHT Light
, D3DVALUE px
,
1095 D3DVALUE py
, D3DVALUE pz
, D3DVALUE nx
,
1096 D3DVALUE ny
, D3DVALUE nz
,
1097 LPDIRECT3DRMSHADOW2
* Visual2
)
1099 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1101 FIXME("(%p/%p)->(%p,%p,%f,%f,%f,%f,%f,%f,%p): stub\n", iface
, This
, Visual1
, Light
, px
, py
, pz
,
1102 nx
, ny
, nz
, Visual2
);
1107 static HRESULT WINAPI
IDirect3DRM3Impl_CreateTextureFromSurface(IDirect3DRM3
* iface
,
1108 LPDIRECTDRAWSURFACE surface
,
1109 LPDIRECT3DRMTEXTURE3
* texture
)
1111 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1113 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, surface
, texture
);
1118 static HRESULT WINAPI
IDirect3DRM3Impl_CreateViewport(IDirect3DRM3
* iface
,
1119 LPDIRECT3DRMDEVICE3 Device
,
1120 LPDIRECT3DRMFRAME3 frame
, DWORD xpos
,
1121 DWORD ypos
, DWORD width
, DWORD height
,
1122 LPDIRECT3DRMVIEWPORT2
* viewport
)
1124 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1126 FIXME("(%p/%p)->(%p,%p,%d,%d,%d,%d,%p): stub\n", iface
, This
, Device
, frame
, xpos
, ypos
, width
,
1129 return Direct3DRMViewport_create(&IID_IDirect3DRMViewport2
, (IUnknown
**)viewport
);
1132 static HRESULT WINAPI
IDirect3DRM3Impl_CreateWrap(IDirect3DRM3
* iface
, D3DRMWRAPTYPE type
,
1133 LPDIRECT3DRMFRAME3 frame
,
1134 D3DVALUE ox
, D3DVALUE oy
, D3DVALUE oz
,
1135 D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
,
1136 D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
,
1137 D3DVALUE ou
, D3DVALUE ov
, D3DVALUE su
,
1138 D3DVALUE sv
, LPDIRECT3DRMWRAP
* wrap
)
1140 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1142 FIXME("(%p/%p)->(%d,%p,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%p): stub\n", iface
, This
, type
,
1143 frame
, ox
, oy
, oz
, dx
, dy
, dz
, ux
, uy
, uz
, ou
, ov
, su
, sv
, wrap
);
1148 static HRESULT WINAPI
IDirect3DRM3Impl_CreateUserVisual(IDirect3DRM3
* iface
,
1149 D3DRMUSERVISUALCALLBACK cb
, LPVOID arg
,
1150 LPDIRECT3DRMUSERVISUAL
* UserVisual
)
1152 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1154 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, cb
, arg
, UserVisual
);
1159 static HRESULT WINAPI
IDirect3DRM3Impl_LoadTexture(IDirect3DRM3
* iface
, const char* filename
,
1160 LPDIRECT3DRMTEXTURE3
* Texture
)
1162 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1164 FIXME("(%p/%p)->(%s,%p): stub\n", iface
, This
, filename
, Texture
);
1169 static HRESULT WINAPI
IDirect3DRM3Impl_LoadTextureFromResource(IDirect3DRM3
* iface
, HMODULE mod
,
1170 LPCSTR strName
, LPCSTR strType
,
1171 LPDIRECT3DRMTEXTURE3
* ppTexture
)
1173 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1175 FIXME("(%p/%p)->(%p,%p,%p,%p): stub\n", iface
, This
, mod
, strName
, strType
, ppTexture
);
1180 static HRESULT WINAPI
IDirect3DRM3Impl_SetSearchPath(IDirect3DRM3
* iface
, LPCSTR path
)
1182 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1184 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, path
);
1189 static HRESULT WINAPI
IDirect3DRM3Impl_AddSearchPath(IDirect3DRM3
* iface
, LPCSTR path
)
1191 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1193 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, path
);
1198 static HRESULT WINAPI
IDirect3DRM3Impl_GetSearchPath(IDirect3DRM3
* iface
, DWORD
* size_return
,
1201 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1203 FIXME("(%p/%p)->(%p,%s): stub\n", iface
, This
, size_return
, path_return
);
1208 static HRESULT WINAPI
IDirect3DRM3Impl_SetDefaultTextureColors(IDirect3DRM3
* iface
, DWORD nb_colors
)
1210 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1212 FIXME("(%p/%p)->(%d): stub\n", iface
, This
, nb_colors
);
1217 static HRESULT WINAPI
IDirect3DRM3Impl_SetDefaultTextureShades(IDirect3DRM3
* iface
, DWORD nb_shades
)
1219 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1221 FIXME("(%p/%p)->(%d): stub\n", iface
, This
, nb_shades
);
1226 static HRESULT WINAPI
IDirect3DRM3Impl_GetDevices(IDirect3DRM3
* iface
,
1227 LPDIRECT3DRMDEVICEARRAY
* DeviceArray
)
1229 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1231 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, DeviceArray
);
1236 static HRESULT WINAPI
IDirect3DRM3Impl_GetNamedObject(IDirect3DRM3
* iface
, const char* Name
,
1237 LPDIRECT3DRMOBJECT
* Object
)
1239 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1241 FIXME("(%p/%p)->(%s,%p): stub\n", iface
, This
, Name
, Object
);
1246 static HRESULT WINAPI
IDirect3DRM3Impl_EnumerateObjects(IDirect3DRM3
* iface
, D3DRMOBJECTCALLBACK cb
,
1249 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1251 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, cb
, arg
);
1256 static HRESULT WINAPI
IDirect3DRM3Impl_Load(IDirect3DRM3
* iface
, LPVOID ObjSource
, LPVOID ObjID
,
1257 LPIID
* GUIDs
, DWORD nb_GUIDs
, D3DRMLOADOPTIONS LOFlags
,
1258 D3DRMLOADCALLBACK LoadProc
, LPVOID ArgLP
,
1259 D3DRMLOADTEXTURECALLBACK LoadTextureProc
, LPVOID ArgLTP
,
1260 LPDIRECT3DRMFRAME3 ParentFrame
)
1262 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1264 FIXME("(%p/%p)->(%p,%p,%p,%d,%d,%p,%p,%p,%p,%p): stub\n", iface
, This
, ObjSource
, ObjID
, GUIDs
,
1265 nb_GUIDs
, LOFlags
, LoadProc
, ArgLP
, LoadTextureProc
, ArgLTP
, ParentFrame
);
1270 static HRESULT WINAPI
IDirect3DRM3Impl_Tick(IDirect3DRM3
* iface
, D3DVALUE tick
)
1272 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1274 FIXME("(%p/%p)->(%f): stub\n", iface
, This
, tick
);
1279 static HRESULT WINAPI
IDirect3DRM3Impl_CreateProgressiveMesh(IDirect3DRM3
* iface
,
1280 LPDIRECT3DRMPROGRESSIVEMESH Mesh
)
1282 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1284 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, Mesh
);
1289 static HRESULT WINAPI
IDirect3DRM3Impl_RegisterClient(IDirect3DRM3
* iface
, REFGUID rguid
,
1292 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1294 FIXME("(%p/%p)->(%s, %p): stub\n", iface
, This
, debugstr_guid(rguid
), id
);
1299 static HRESULT WINAPI
IDirect3DRM3Impl_UnregisterClient(IDirect3DRM3
* iface
, REFGUID rguid
)
1301 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1303 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, debugstr_guid(rguid
));
1308 static HRESULT WINAPI
IDirect3DRM3Impl_CreateClippedVisual(IDirect3DRM3
* iface
,
1309 LPDIRECT3DRMVISUAL vis
,
1310 LPDIRECT3DRMCLIPPEDVISUAL
* clippedvis
)
1312 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1314 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, vis
, clippedvis
);
1319 static HRESULT WINAPI
IDirect3DRM3Impl_SetOptions(IDirect3DRM3
* iface
, DWORD opt
)
1321 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1323 FIXME("(%p/%p)->(%d): stub\n", iface
, This
, opt
);
1328 static HRESULT WINAPI
IDirect3DRM3Impl_GetOptions(IDirect3DRM3
* iface
, LPDWORD opt
)
1330 IDirect3DRMImpl
*This
= impl_from_IDirect3DRM3(iface
);
1332 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, opt
);
1337 static const struct IDirect3DRM3Vtbl Direct3DRM3_Vtbl
=
1339 IDirect3DRM3Impl_QueryInterface
,
1340 IDirect3DRM3Impl_AddRef
,
1341 IDirect3DRM3Impl_Release
,
1342 IDirect3DRM3Impl_CreateObject
,
1343 IDirect3DRM3Impl_CreateFrame
,
1344 IDirect3DRM3Impl_CreateMesh
,
1345 IDirect3DRM3Impl_CreateMeshBuilder
,
1346 IDirect3DRM3Impl_CreateFace
,
1347 IDirect3DRM3Impl_CreateAnimation
,
1348 IDirect3DRM3Impl_CreateAnimationSet
,
1349 IDirect3DRM3Impl_CreateTexture
,
1350 IDirect3DRM3Impl_CreateLight
,
1351 IDirect3DRM3Impl_CreateLightRGB
,
1352 IDirect3DRM3Impl_Material
,
1353 IDirect3DRM3Impl_CreateDevice
,
1354 IDirect3DRM3Impl_CreateDeviceFromSurface
,
1355 IDirect3DRM3Impl_CreateDeviceFromD3D
,
1356 IDirect3DRM3Impl_CreateDeviceFromClipper
,
1357 IDirect3DRM3Impl_CreateTextureFromSurface
,
1358 IDirect3DRM3Impl_CreateShadow
,
1359 IDirect3DRM3Impl_CreateViewport
,
1360 IDirect3DRM3Impl_CreateWrap
,
1361 IDirect3DRM3Impl_CreateUserVisual
,
1362 IDirect3DRM3Impl_LoadTexture
,
1363 IDirect3DRM3Impl_LoadTextureFromResource
,
1364 IDirect3DRM3Impl_SetSearchPath
,
1365 IDirect3DRM3Impl_AddSearchPath
,
1366 IDirect3DRM3Impl_GetSearchPath
,
1367 IDirect3DRM3Impl_SetDefaultTextureColors
,
1368 IDirect3DRM3Impl_SetDefaultTextureShades
,
1369 IDirect3DRM3Impl_GetDevices
,
1370 IDirect3DRM3Impl_GetNamedObject
,
1371 IDirect3DRM3Impl_EnumerateObjects
,
1372 IDirect3DRM3Impl_Load
,
1373 IDirect3DRM3Impl_Tick
,
1374 IDirect3DRM3Impl_CreateProgressiveMesh
,
1375 IDirect3DRM3Impl_RegisterClient
,
1376 IDirect3DRM3Impl_UnregisterClient
,
1377 IDirect3DRM3Impl_CreateClippedVisual
,
1378 IDirect3DRM3Impl_SetOptions
,
1379 IDirect3DRM3Impl_GetOptions