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 inline IDirect3DRMImpl *impl_from_IDirect3DRM(IDirect3DRM *iface)
42 return CONTAINING_RECORD(iface, IDirect3DRMImpl, IDirect3DRM_iface);
45 static inline IDirect3DRMImpl *impl_from_IDirect3DRM2(IDirect3DRM2 *iface)
47 return CONTAINING_RECORD(iface, IDirect3DRMImpl, IDirect3DRM2_iface);
50 static inline IDirect3DRMImpl *impl_from_IDirect3DRM3(IDirect3DRM3 *iface)
52 return CONTAINING_RECORD(iface, IDirect3DRMImpl, IDirect3DRM3_iface);
55 /*** IUnknown methods ***/
56 static HRESULT WINAPI IDirect3DRMImpl_QueryInterface(IDirect3DRM* iface, REFIID riid, void** ppvObject)
58 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
60 TRACE("(%p/%p)->(%s,%p)\n", iface, This, debugstr_guid(riid), ppvObject);
64 if(IsEqualGUID(riid, &IID_IUnknown) ||
65 IsEqualGUID(riid, &IID_IDirect3DRM))
67 *ppvObject = &This->IDirect3DRM_iface;
69 else if(IsEqualGUID(riid, &IID_IDirect3DRM2))
71 *ppvObject = &This->IDirect3DRM2_iface;
73 else if(IsEqualGUID(riid, &IID_IDirect3DRM3))
75 *ppvObject = &This->IDirect3DRM3_iface;
79 FIXME("interface %s not implemented\n", debugstr_guid(riid));
83 IDirect3DRM_AddRef(iface);
87 static ULONG WINAPI IDirect3DRMImpl_AddRef(IDirect3DRM* iface)
89 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
90 ULONG ref = InterlockedIncrement(&This->ref);
92 TRACE("(%p/%p)->(): new ref = %d\n", iface, This, ref);
97 static ULONG WINAPI IDirect3DRMImpl_Release(IDirect3DRM* iface)
99 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
100 ULONG ref = InterlockedDecrement(&This->ref);
102 TRACE("(%p/%p)->(): new ref = %d\n", iface, This, ref);
105 HeapFree(GetProcessHeap(), 0, This);
110 /*** IDirect3DRM methods ***/
111 static HRESULT WINAPI IDirect3DRMImpl_CreateObject(IDirect3DRM* iface, REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj)
113 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
115 FIXME("(%p/%p)->(%s,%p,%s,%p): stub\n", iface, This, debugstr_guid(rclsid), pUnkOuter, debugstr_guid(riid), ppvObj);
120 static HRESULT WINAPI IDirect3DRMImpl_CreateFrame(IDirect3DRM* iface, LPDIRECT3DRMFRAME pFrameParent, LPDIRECT3DRMFRAME * ppFrame)
122 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
124 TRACE("(%p/%p)->(%p,%p)\n", iface, This, pFrameParent, ppFrame);
127 FIXME("(%p/%p): Parent frame not yet supported\n", iface, This);
129 return Direct3DRMFrame_create(&IID_IDirect3DRMFrame, (IUnknown**)ppFrame);
132 static HRESULT WINAPI IDirect3DRMImpl_CreateMesh(IDirect3DRM* iface, LPDIRECT3DRMMESH * ppMesh)
134 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
136 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppMesh);
141 static HRESULT WINAPI IDirect3DRMImpl_CreateMeshBuilder(IDirect3DRM* iface, LPDIRECT3DRMMESHBUILDER * ppMeshBuilder)
143 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
145 TRACE("(%p/%p)->(%p)\n", iface, This, ppMeshBuilder);
147 return Direct3DRMMeshBuilder_create(&IID_IDirect3DRMMeshBuilder, (IUnknown**)ppMeshBuilder);
150 static HRESULT WINAPI IDirect3DRMImpl_CreateFace(IDirect3DRM* iface, LPDIRECT3DRMFACE * ppFace)
152 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
154 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppFace);
159 static HRESULT WINAPI IDirect3DRMImpl_CreateAnimation(IDirect3DRM* iface, LPDIRECT3DRMANIMATION * ppAnimation)
161 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
163 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppAnimation);
168 static HRESULT WINAPI IDirect3DRMImpl_CreateAnimationSet(IDirect3DRM* iface, LPDIRECT3DRMANIMATIONSET * ppAnimationSet)
170 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
172 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppAnimationSet);
177 static HRESULT WINAPI IDirect3DRMImpl_CreateTexture(IDirect3DRM* iface, LPD3DRMIMAGE pImage, LPDIRECT3DRMTEXTURE * ppTexture)
179 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
181 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pImage, ppTexture);
186 static HRESULT WINAPI IDirect3DRMImpl_CreateLight(IDirect3DRM* iface, D3DRMLIGHTTYPE type, D3DCOLOR color, LPDIRECT3DRMLIGHT * ppLight)
188 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
190 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, type, color, ppLight);
195 static HRESULT WINAPI IDirect3DRMImpl_CreateLightRGB(IDirect3DRM* iface, D3DRMLIGHTTYPE type, D3DVALUE red, D3DVALUE green, D3DVALUE blue, LPDIRECT3DRMLIGHT * ppLight)
197 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
199 FIXME("(%p/%p)->(%d,%f,%f,%f,%p): stub\n", iface, This, type, red, green, blue, ppLight);
204 static HRESULT WINAPI IDirect3DRMImpl_Material(IDirect3DRM* iface, D3DVALUE m, LPDIRECT3DRMMATERIAL * ppMaterial)
206 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
208 FIXME("(%p/%p)->(%f,%p): stub\n", iface, This, m, ppMaterial);
213 static HRESULT WINAPI IDirect3DRMImpl_CreateDevice(IDirect3DRM* iface, DWORD width, DWORD height, LPDIRECT3DRMDEVICE * ppDevice)
215 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
217 FIXME("(%p/%p)->(%u,%u,%p): partial stub\n", iface, This, width, height, ppDevice);
219 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice, (IUnknown**)ppDevice);
222 static HRESULT WINAPI IDirect3DRMImpl_CreateDeviceFromSurface(IDirect3DRM* iface, LPGUID pGUID, LPDIRECTDRAW pDD, LPDIRECTDRAWSURFACE pDDSBack, LPDIRECT3DRMDEVICE * ppDevice)
224 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
226 FIXME("(%p/%p)->(%s,%p,%p,%p): partial stub\n", iface, This, debugstr_guid(pGUID), pDD,
229 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice, (IUnknown**)ppDevice);
232 static HRESULT WINAPI IDirect3DRMImpl_CreateDeviceFromD3D(IDirect3DRM* iface, LPDIRECT3D pD3D, LPDIRECT3DDEVICE pD3DDev, LPDIRECT3DRMDEVICE * ppDevice)
234 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
236 FIXME("(%p/%p)->(%p,%p,%p): partial stub\n", iface, This, pD3D, pD3DDev, ppDevice);
238 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice, (IUnknown**)ppDevice);
241 static HRESULT WINAPI IDirect3DRMImpl_CreateDeviceFromClipper(IDirect3DRM* iface, LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height, LPDIRECT3DRMDEVICE * ppDevice)
243 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
245 FIXME("(%p/%p)->(%p,%s,%d,%d,%p): partial stub\n", iface, This, pDDClipper,
246 debugstr_guid(pGUID), width, height, ppDevice);
248 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice, (IUnknown**)ppDevice);
251 static HRESULT WINAPI IDirect3DRMImpl_CreateTextureFromSurface(IDirect3DRM* iface, LPDIRECTDRAWSURFACE pDDS, LPDIRECT3DRMTEXTURE * ppTexture)
253 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
255 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pDDS, ppTexture);
260 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)
262 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
264 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);
269 static HRESULT WINAPI IDirect3DRMImpl_CreateViewport(IDirect3DRM* iface, LPDIRECT3DRMDEVICE pDevice, LPDIRECT3DRMFRAME pFrame, DWORD xpos, DWORD ypos, DWORD width, DWORD height, LPDIRECT3DRMVIEWPORT * ppViewport)
271 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
273 FIXME("(%p/%p)->(%p,%p,%d,%d,%d,%d,%p): partial stub\n", iface, This, pDevice, pFrame,
274 xpos, ypos, width, height, ppViewport);
276 return Direct3DRMViewport_create(&IID_IDirect3DRMViewport, (IUnknown**)ppViewport);
279 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)
281 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
283 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);
288 static HRESULT WINAPI IDirect3DRMImpl_CreateUserVisual(IDirect3DRM* iface, D3DRMUSERVISUALCALLBACK cb, LPVOID pArg, LPDIRECT3DRMUSERVISUAL * ppUserVisual)
290 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
292 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, cb, pArg, ppUserVisual);
297 static HRESULT WINAPI IDirect3DRMImpl_LoadTexture(IDirect3DRM* iface, const char * filename, LPDIRECT3DRMTEXTURE * ppTexture)
299 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
301 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, filename, ppTexture);
306 static HRESULT WINAPI IDirect3DRMImpl_LoadTextureFromResource(IDirect3DRM* iface, HRSRC rs, LPDIRECT3DRMTEXTURE * ppTexture)
308 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
310 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, rs, ppTexture);
315 static HRESULT WINAPI IDirect3DRMImpl_SetSearchPath(IDirect3DRM* iface, LPCSTR path)
317 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
319 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
324 static HRESULT WINAPI IDirect3DRMImpl_AddSearchPath(IDirect3DRM* iface, LPCSTR path)
326 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
328 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
333 static HRESULT WINAPI IDirect3DRMImpl_GetSearchPath(IDirect3DRM* iface, DWORD *size_return, LPSTR path_return)
335 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
337 FIXME("(%p/%p)->(%p,%s): stub\n", iface, This, size_return, path_return);
342 static HRESULT WINAPI IDirect3DRMImpl_SetDefaultTextureColors(IDirect3DRM* iface, DWORD nb_colors)
344 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
346 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_colors);
351 static HRESULT WINAPI IDirect3DRMImpl_SetDefaultTextureShades(IDirect3DRM* iface, DWORD nb_shades)
353 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
355 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_shades);
360 static HRESULT WINAPI IDirect3DRMImpl_GetDevices(IDirect3DRM* iface, LPDIRECT3DRMDEVICEARRAY * ppDeviceArray)
362 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
364 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppDeviceArray);
369 static HRESULT WINAPI IDirect3DRMImpl_GetNamedObject(IDirect3DRM* iface, const char * pName, LPDIRECT3DRMOBJECT * ppObject)
371 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
373 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, pName, ppObject);
378 static HRESULT WINAPI IDirect3DRMImpl_EnumerateObjects(IDirect3DRM* iface, D3DRMOBJECTCALLBACK cb, LPVOID pArg)
380 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
382 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, cb, pArg);
387 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)
389 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
391 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);
396 static HRESULT WINAPI IDirect3DRMImpl_Tick(IDirect3DRM* iface, D3DVALUE tick)
398 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
400 FIXME("(%p/%p)->(%f): stub\n", iface, This, tick);
405 static const struct IDirect3DRMVtbl Direct3DRM_Vtbl =
407 IDirect3DRMImpl_QueryInterface,
408 IDirect3DRMImpl_AddRef,
409 IDirect3DRMImpl_Release,
410 IDirect3DRMImpl_CreateObject,
411 IDirect3DRMImpl_CreateFrame,
412 IDirect3DRMImpl_CreateMesh,
413 IDirect3DRMImpl_CreateMeshBuilder,
414 IDirect3DRMImpl_CreateFace,
415 IDirect3DRMImpl_CreateAnimation,
416 IDirect3DRMImpl_CreateAnimationSet,
417 IDirect3DRMImpl_CreateTexture,
418 IDirect3DRMImpl_CreateLight,
419 IDirect3DRMImpl_CreateLightRGB,
420 IDirect3DRMImpl_Material,
421 IDirect3DRMImpl_CreateDevice,
422 IDirect3DRMImpl_CreateDeviceFromSurface,
423 IDirect3DRMImpl_CreateDeviceFromD3D,
424 IDirect3DRMImpl_CreateDeviceFromClipper,
425 IDirect3DRMImpl_CreateTextureFromSurface,
426 IDirect3DRMImpl_CreateShadow,
427 IDirect3DRMImpl_CreateViewport,
428 IDirect3DRMImpl_CreateWrap,
429 IDirect3DRMImpl_CreateUserVisual,
430 IDirect3DRMImpl_LoadTexture,
431 IDirect3DRMImpl_LoadTextureFromResource,
432 IDirect3DRMImpl_SetSearchPath,
433 IDirect3DRMImpl_AddSearchPath,
434 IDirect3DRMImpl_GetSearchPath,
435 IDirect3DRMImpl_SetDefaultTextureColors,
436 IDirect3DRMImpl_SetDefaultTextureShades,
437 IDirect3DRMImpl_GetDevices,
438 IDirect3DRMImpl_GetNamedObject,
439 IDirect3DRMImpl_EnumerateObjects,
440 IDirect3DRMImpl_Load,
445 /*** IUnknown methods ***/
446 static HRESULT WINAPI IDirect3DRM2Impl_QueryInterface(IDirect3DRM2* iface, REFIID riid,
449 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
450 return IDirect3DRM_QueryInterface(&This->IDirect3DRM_iface, riid, ppvObject);
453 static ULONG WINAPI IDirect3DRM2Impl_AddRef(IDirect3DRM2* iface)
455 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
456 return IDirect3DRM_AddRef(&This->IDirect3DRM_iface);
459 static ULONG WINAPI IDirect3DRM2Impl_Release(IDirect3DRM2* iface)
461 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
462 return IDirect3DRM_Release(&This->IDirect3DRM_iface);
465 /*** IDirect3DRM2 methods ***/
466 static HRESULT WINAPI IDirect3DRM2Impl_CreateObject(IDirect3DRM2* iface, REFCLSID rclsid,
467 LPUNKNOWN pUnkOuter, REFIID riid,
470 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
472 FIXME("(%p/%p)->(%s,%p,%s,%p): stub\n", iface, This, debugstr_guid(rclsid), pUnkOuter,
473 debugstr_guid(riid), ppvObj);
478 static HRESULT WINAPI IDirect3DRM2Impl_CreateFrame(IDirect3DRM2* iface,
479 LPDIRECT3DRMFRAME pFrameParent,
480 LPDIRECT3DRMFRAME2 * ppFrame)
482 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
484 TRACE("(%p/%p)->(%p,%p)\n", iface, This, pFrameParent, ppFrame);
487 FIXME("(%p/%p): Parent frame not yet supported\n", iface, This);
489 return Direct3DRMFrame_create(&IID_IDirect3DRMFrame2, (IUnknown**)ppFrame);
492 static HRESULT WINAPI IDirect3DRM2Impl_CreateMesh(IDirect3DRM2* iface, LPDIRECT3DRMMESH * ppMesh)
494 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
496 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppMesh);
501 static HRESULT WINAPI IDirect3DRM2Impl_CreateMeshBuilder(IDirect3DRM2* iface,
502 LPDIRECT3DRMMESHBUILDER2 * ppMeshBuilder)
504 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
506 TRACE("(%p/%p)->(%p)\n", iface, This, ppMeshBuilder);
508 return Direct3DRMMeshBuilder_create(&IID_IDirect3DRMMeshBuilder2, (IUnknown**)ppMeshBuilder);
511 static HRESULT WINAPI IDirect3DRM2Impl_CreateFace(IDirect3DRM2* iface, LPDIRECT3DRMFACE * ppFace)
513 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
515 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppFace);
520 static HRESULT WINAPI IDirect3DRM2Impl_CreateAnimation(IDirect3DRM2* iface,
521 LPDIRECT3DRMANIMATION * ppAnimation)
523 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
525 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppAnimation);
530 static HRESULT WINAPI IDirect3DRM2Impl_CreateAnimationSet(IDirect3DRM2* iface,
531 LPDIRECT3DRMANIMATIONSET * ppAnimationSet)
533 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
535 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppAnimationSet);
540 static HRESULT WINAPI IDirect3DRM2Impl_CreateTexture(IDirect3DRM2* iface, LPD3DRMIMAGE pImage,
541 LPDIRECT3DRMTEXTURE2 * ppTexture)
543 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
545 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pImage, ppTexture);
550 static HRESULT WINAPI IDirect3DRM2Impl_CreateLight(IDirect3DRM2* iface, D3DRMLIGHTTYPE type,
551 D3DCOLOR color, LPDIRECT3DRMLIGHT * ppLight)
553 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
555 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, type, color, ppLight);
560 static HRESULT WINAPI IDirect3DRM2Impl_CreateLightRGB(IDirect3DRM2* iface, D3DRMLIGHTTYPE type,
561 D3DVALUE red, D3DVALUE green, D3DVALUE blue,
562 LPDIRECT3DRMLIGHT * ppLight)
564 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
566 FIXME("(%p/%p)->(%d,%f,%f,%f,%p): stub\n", iface, This, type, red, green, blue, ppLight);
571 static HRESULT WINAPI IDirect3DRM2Impl_Material(IDirect3DRM2* iface, D3DVALUE m,
572 LPDIRECT3DRMMATERIAL * ppMaterial)
574 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
576 FIXME("(%p/%p)->(%f,%p): stub\n", iface, This, m, ppMaterial);
581 static HRESULT WINAPI IDirect3DRM2Impl_CreateDevice(IDirect3DRM2* iface, DWORD width, DWORD height,
582 LPDIRECT3DRMDEVICE2 * ppDevice)
584 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
586 FIXME("(%p/%p)->(%u,%u,%p): partial stub\n", iface, This, width, height, ppDevice);
588 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice2, (IUnknown**)ppDevice);
591 static HRESULT WINAPI IDirect3DRM2Impl_CreateDeviceFromSurface(IDirect3DRM2* iface, LPGUID pGUID,
593 LPDIRECTDRAWSURFACE pDDSBack,
594 LPDIRECT3DRMDEVICE2 * ppDevice)
596 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
598 FIXME("(%p/%p)->(%s,%p,%p,%p): partial stub\n", iface, This, debugstr_guid(pGUID),
599 pDD, pDDSBack, ppDevice);
601 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice2, (IUnknown**)ppDevice);
604 static HRESULT WINAPI IDirect3DRM2Impl_CreateDeviceFromD3D(IDirect3DRM2* iface, LPDIRECT3D2 pD3D,
605 LPDIRECT3DDEVICE2 pD3DDev,
606 LPDIRECT3DRMDEVICE2 * ppDevice)
608 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
610 FIXME("(%p/%p)->(%p,%p,%p): partial stub\n", iface, This, pD3D, pD3DDev, ppDevice);
612 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice2, (IUnknown**)ppDevice);
615 static HRESULT WINAPI IDirect3DRM2Impl_CreateDeviceFromClipper(IDirect3DRM2* iface,
616 LPDIRECTDRAWCLIPPER pDDClipper,
617 LPGUID pGUID, int width, int height,
618 LPDIRECT3DRMDEVICE2 * ppDevice)
620 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
622 FIXME("(%p/%p)->(%p,%s,%d,%d,%p): partial stub\n", iface, This, pDDClipper,
623 debugstr_guid(pGUID), width, height, ppDevice);
625 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice2, (IUnknown**)ppDevice);
628 static HRESULT WINAPI IDirect3DRM2Impl_CreateTextureFromSurface(IDirect3DRM2* iface,
629 LPDIRECTDRAWSURFACE pDDS,
630 LPDIRECT3DRMTEXTURE2 * ppTexture)
632 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
634 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pDDS, ppTexture);
639 static HRESULT WINAPI IDirect3DRM2Impl_CreateShadow(IDirect3DRM2* iface, LPDIRECT3DRMVISUAL pVisual,
640 LPDIRECT3DRMLIGHT pLight,
641 D3DVALUE px, D3DVALUE py, D3DVALUE pz,
642 D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
643 LPDIRECT3DRMVISUAL * ppVisual)
645 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
647 FIXME("(%p/%p)->(%p,%p,%f,%f,%f,%f,%f,%f,%p): stub\n", iface, This, pVisual, pLight, px, py, pz,
648 nx, ny, nz, ppVisual);
653 static HRESULT WINAPI IDirect3DRM2Impl_CreateViewport(IDirect3DRM2* iface,
654 LPDIRECT3DRMDEVICE pDevice,
655 LPDIRECT3DRMFRAME pFrame,
656 DWORD xpos, DWORD ypos,
657 DWORD width, DWORD height,
658 LPDIRECT3DRMVIEWPORT * ppViewport)
660 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
662 FIXME("(%p/%p)->(%p,%p,%d,%d,%d,%d,%p): partial stub\n", iface, This, pDevice, pFrame,
663 xpos, ypos, width, height, ppViewport);
665 return Direct3DRMViewport_create(&IID_IDirect3DRMViewport, (IUnknown**)ppViewport);
668 static HRESULT WINAPI IDirect3DRM2Impl_CreateWrap(IDirect3DRM2* iface, D3DRMWRAPTYPE type,
669 LPDIRECT3DRMFRAME pFrame,
670 D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
671 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
672 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
673 D3DVALUE ou, D3DVALUE ov, D3DVALUE su,
674 D3DVALUE sv, LPDIRECT3DRMWRAP * ppWrap)
676 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
678 FIXME("(%p/%p)->(%d,%p,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%p): stub\n", iface, This, type,
679 pFrame, ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv, ppWrap);
684 static HRESULT WINAPI IDirect3DRM2Impl_CreateUserVisual(IDirect3DRM2* iface,
685 D3DRMUSERVISUALCALLBACK cb, LPVOID pArg,
686 LPDIRECT3DRMUSERVISUAL * ppUserVisual)
688 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
690 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, cb, pArg, ppUserVisual);
695 static HRESULT WINAPI IDirect3DRM2Impl_LoadTexture(IDirect3DRM2* iface, const char * filename,
696 LPDIRECT3DRMTEXTURE2 * ppTexture)
698 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
700 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, filename, ppTexture);
705 static HRESULT WINAPI IDirect3DRM2Impl_LoadTextureFromResource(IDirect3DRM2* iface, HMODULE hModule,
706 LPCSTR strName, LPCSTR strType,
707 LPDIRECT3DRMTEXTURE2 * ppTexture)
709 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
711 FIXME("(%p/%p)->(%p,%p,%p,%p): stub\n", iface, This, hModule, strName, strType, ppTexture);
716 static HRESULT WINAPI IDirect3DRM2Impl_SetSearchPath(IDirect3DRM2* iface, LPCSTR path)
718 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
720 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
725 static HRESULT WINAPI IDirect3DRM2Impl_AddSearchPath(IDirect3DRM2* iface, LPCSTR path)
727 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
729 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
734 static HRESULT WINAPI IDirect3DRM2Impl_GetSearchPath(IDirect3DRM2* iface, DWORD *size_return,
737 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
739 FIXME("(%p/%p)->(%p,%s): stub\n", iface, This, size_return, path_return);
744 static HRESULT WINAPI IDirect3DRM2Impl_SetDefaultTextureColors(IDirect3DRM2* iface, DWORD nb_colors)
746 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
748 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_colors);
753 static HRESULT WINAPI IDirect3DRM2Impl_SetDefaultTextureShades(IDirect3DRM2* iface, DWORD nb_shades)
755 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
757 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_shades);
762 static HRESULT WINAPI IDirect3DRM2Impl_GetDevices(IDirect3DRM2* iface,
763 LPDIRECT3DRMDEVICEARRAY * ppDeviceArray)
765 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
767 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppDeviceArray);
772 static HRESULT WINAPI IDirect3DRM2Impl_GetNamedObject(IDirect3DRM2* iface, const char * pName,
773 LPDIRECT3DRMOBJECT * ppObject)
775 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
777 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, pName, ppObject);
782 static HRESULT WINAPI IDirect3DRM2Impl_EnumerateObjects(IDirect3DRM2* iface, D3DRMOBJECTCALLBACK cb,
785 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
787 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, cb, pArg);
792 static HRESULT WINAPI IDirect3DRM2Impl_Load(IDirect3DRM2* iface, LPVOID pObjSource, LPVOID pObjID,
793 LPIID * ppGUIDs, DWORD nb_GUIDs,
794 D3DRMLOADOPTIONS LOFlags, D3DRMLOADCALLBACK LoadProc,
795 LPVOID pArgLP, D3DRMLOADTEXTURECALLBACK LoadTextureProc,
796 LPVOID pArgLTP, LPDIRECT3DRMFRAME pParentFrame)
798 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
800 FIXME("(%p/%p)->(%p,%p,%p,%d,%d,%p,%p,%p,%p,%p): stub\n", iface, This, pObjSource, pObjID,
801 ppGUIDs, nb_GUIDs, LOFlags, LoadProc, pArgLP, LoadTextureProc, pArgLTP, pParentFrame);
806 static HRESULT WINAPI IDirect3DRM2Impl_Tick(IDirect3DRM2* iface, D3DVALUE tick)
808 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
810 FIXME("(%p/%p)->(%f): stub\n", iface, This, tick);
815 static HRESULT WINAPI IDirect3DRM2Impl_CreateProgressiveMesh(IDirect3DRM2* iface,
816 LPDIRECT3DRMPROGRESSIVEMESH * ppMesh)
818 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
820 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppMesh);
825 static const struct IDirect3DRM2Vtbl Direct3DRM2_Vtbl =
827 IDirect3DRM2Impl_QueryInterface,
828 IDirect3DRM2Impl_AddRef,
829 IDirect3DRM2Impl_Release,
830 IDirect3DRM2Impl_CreateObject,
831 IDirect3DRM2Impl_CreateFrame,
832 IDirect3DRM2Impl_CreateMesh,
833 IDirect3DRM2Impl_CreateMeshBuilder,
834 IDirect3DRM2Impl_CreateFace,
835 IDirect3DRM2Impl_CreateAnimation,
836 IDirect3DRM2Impl_CreateAnimationSet,
837 IDirect3DRM2Impl_CreateTexture,
838 IDirect3DRM2Impl_CreateLight,
839 IDirect3DRM2Impl_CreateLightRGB,
840 IDirect3DRM2Impl_Material,
841 IDirect3DRM2Impl_CreateDevice,
842 IDirect3DRM2Impl_CreateDeviceFromSurface,
843 IDirect3DRM2Impl_CreateDeviceFromD3D,
844 IDirect3DRM2Impl_CreateDeviceFromClipper,
845 IDirect3DRM2Impl_CreateTextureFromSurface,
846 IDirect3DRM2Impl_CreateShadow,
847 IDirect3DRM2Impl_CreateViewport,
848 IDirect3DRM2Impl_CreateWrap,
849 IDirect3DRM2Impl_CreateUserVisual,
850 IDirect3DRM2Impl_LoadTexture,
851 IDirect3DRM2Impl_LoadTextureFromResource,
852 IDirect3DRM2Impl_SetSearchPath,
853 IDirect3DRM2Impl_AddSearchPath,
854 IDirect3DRM2Impl_GetSearchPath,
855 IDirect3DRM2Impl_SetDefaultTextureColors,
856 IDirect3DRM2Impl_SetDefaultTextureShades,
857 IDirect3DRM2Impl_GetDevices,
858 IDirect3DRM2Impl_GetNamedObject,
859 IDirect3DRM2Impl_EnumerateObjects,
860 IDirect3DRM2Impl_Load,
861 IDirect3DRM2Impl_Tick,
862 IDirect3DRM2Impl_CreateProgressiveMesh
866 /*** IUnknown methods ***/
867 static HRESULT WINAPI IDirect3DRM3Impl_QueryInterface(IDirect3DRM3* iface, REFIID riid,
870 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
871 return IDirect3DRM_QueryInterface(&This->IDirect3DRM_iface, riid, ppvObject);
874 static ULONG WINAPI IDirect3DRM3Impl_AddRef(IDirect3DRM3* iface)
876 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
877 return IDirect3DRM_AddRef(&This->IDirect3DRM_iface);
880 static ULONG WINAPI IDirect3DRM3Impl_Release(IDirect3DRM3* iface)
882 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
883 return IDirect3DRM_Release(&This->IDirect3DRM_iface);
886 /*** IDirect3DRM3 methods ***/
887 static HRESULT WINAPI IDirect3DRM3Impl_CreateObject(IDirect3DRM3* iface, REFCLSID rclsid,
888 LPUNKNOWN unkwn, REFIID riid, LPVOID* object)
890 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
892 FIXME("(%p/%p)->(%s,%p,%s,%p): stub\n", iface, This, debugstr_guid(rclsid), unkwn,
893 debugstr_guid(riid), object);
898 static HRESULT WINAPI IDirect3DRM3Impl_CreateFrame(IDirect3DRM3* iface,
899 LPDIRECT3DRMFRAME3 FrameParent,
900 LPDIRECT3DRMFRAME3* Frame)
902 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
904 TRACE("(%p/%p)->(%p,%p)\n", iface, This, FrameParent, Frame);
907 FIXME("(%p/%p): Parent frame not yet supported\n", iface, This);
909 return Direct3DRMFrame_create(&IID_IDirect3DRMFrame3, (IUnknown**)Frame);
912 static HRESULT WINAPI IDirect3DRM3Impl_CreateMesh(IDirect3DRM3* iface, LPDIRECT3DRMMESH* Mesh)
914 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
916 FIXME("(%p/%p)->(%p): stub\n", iface, This, Mesh);
921 static HRESULT WINAPI IDirect3DRM3Impl_CreateMeshBuilder(IDirect3DRM3* iface,
922 LPDIRECT3DRMMESHBUILDER3* ppMeshBuilder)
924 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
926 TRACE("(%p/%p)->(%p)\n", iface, This, ppMeshBuilder);
928 return Direct3DRMMeshBuilder_create(&IID_IDirect3DRMMeshBuilder3, (IUnknown**)ppMeshBuilder);
931 static HRESULT WINAPI IDirect3DRM3Impl_CreateFace(IDirect3DRM3* iface, LPDIRECT3DRMFACE2* Face)
933 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
935 FIXME("(%p/%p)->(%p): stub\n", iface, This, Face);
940 static HRESULT WINAPI IDirect3DRM3Impl_CreateAnimation(IDirect3DRM3* iface,
941 LPDIRECT3DRMANIMATION2* Animation)
943 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
945 FIXME("(%p/%p)->(%p): stub\n", iface, This, Animation);
950 static HRESULT WINAPI IDirect3DRM3Impl_CreateAnimationSet(IDirect3DRM3* iface,
951 LPDIRECT3DRMANIMATIONSET2* AnimationSet)
953 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
955 FIXME("(%p/%p)->(%p): stub\n", iface, This, AnimationSet);
960 static HRESULT WINAPI IDirect3DRM3Impl_CreateTexture(IDirect3DRM3* iface, LPD3DRMIMAGE Image,
961 LPDIRECT3DRMTEXTURE3* Texture)
963 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
965 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, Image, Texture);
970 static HRESULT WINAPI IDirect3DRM3Impl_CreateLight(IDirect3DRM3* iface, D3DRMLIGHTTYPE type,
971 D3DCOLOR color, LPDIRECT3DRMLIGHT* Light)
973 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
975 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, type, color, Light);
980 static HRESULT WINAPI IDirect3DRM3Impl_CreateLightRGB(IDirect3DRM3* iface, D3DRMLIGHTTYPE type,
981 D3DVALUE red, D3DVALUE green, D3DVALUE blue,
982 LPDIRECT3DRMLIGHT* Light)
984 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
986 FIXME("(%p/%p)->(%d,%f,%f,%f,%p): stub\n", iface, This, type, red, green, blue, Light);
991 static HRESULT WINAPI IDirect3DRM3Impl_Material(IDirect3DRM3* iface, D3DVALUE m,
992 LPDIRECT3DRMMATERIAL2* Material)
994 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
996 FIXME("(%p/%p)->(%f,%p): stub\n", iface, This, m, Material);
1001 static HRESULT WINAPI IDirect3DRM3Impl_CreateDevice(IDirect3DRM3* iface, DWORD width, DWORD height,
1002 LPDIRECT3DRMDEVICE3* device)
1004 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1006 FIXME("(%p/%p)->(%d,%d,%p): partial stub\n", iface, This, width, height, device);
1008 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice3, (IUnknown**)device);
1011 static HRESULT WINAPI IDirect3DRM3Impl_CreateDeviceFromSurface(IDirect3DRM3* iface, LPGUID pGUID,
1013 LPDIRECTDRAWSURFACE back,
1014 LPDIRECT3DRMDEVICE3* device)
1016 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1018 FIXME("(%p/%p)->(%s,%p,%p,%p): partial stub\n", iface, This, debugstr_guid(pGUID), dd, back, device);
1020 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice3, (IUnknown**)device);
1023 static HRESULT WINAPI IDirect3DRM3Impl_CreateDeviceFromD3D(IDirect3DRM3* iface, LPDIRECT3D2 d3d,
1024 LPDIRECT3DDEVICE2 d3ddev,
1025 LPDIRECT3DRMDEVICE3* device)
1027 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1029 FIXME("(%p/%p)->(%p,%p,%p): partial stub\n", iface, This, d3d, d3ddev, device);
1031 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice3, (IUnknown**)device);
1034 static HRESULT WINAPI IDirect3DRM3Impl_CreateDeviceFromClipper(IDirect3DRM3* iface,
1035 LPDIRECTDRAWCLIPPER clipper,
1036 LPGUID GUID, int width, int height,
1037 LPDIRECT3DRMDEVICE3* device)
1039 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1041 FIXME("(%p/%p)->(%p,%s,%d,%d,%p): partial stub\n", iface, This, clipper, debugstr_guid(GUID),
1042 width, height, device);
1044 return Direct3DRMDevice_create(&IID_IDirect3DRMDevice3, (IUnknown**)device);
1047 static HRESULT WINAPI IDirect3DRM3Impl_CreateShadow(IDirect3DRM3* iface, LPUNKNOWN Visual1,
1048 LPDIRECT3DRMLIGHT Light, D3DVALUE px,
1049 D3DVALUE py, D3DVALUE pz, D3DVALUE nx,
1050 D3DVALUE ny, D3DVALUE nz,
1051 LPDIRECT3DRMSHADOW2* Visual2)
1053 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1055 FIXME("(%p/%p)->(%p,%p,%f,%f,%f,%f,%f,%f,%p): stub\n", iface, This, Visual1, Light, px, py, pz,
1056 nx, ny, nz, Visual2);
1061 static HRESULT WINAPI IDirect3DRM3Impl_CreateTextureFromSurface(IDirect3DRM3* iface,
1062 LPDIRECTDRAWSURFACE surface,
1063 LPDIRECT3DRMTEXTURE3* texture)
1065 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1067 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, surface, texture);
1072 static HRESULT WINAPI IDirect3DRM3Impl_CreateViewport(IDirect3DRM3* iface,
1073 LPDIRECT3DRMDEVICE3 Device,
1074 LPDIRECT3DRMFRAME3 frame, DWORD xpos,
1075 DWORD ypos, DWORD width, DWORD height,
1076 LPDIRECT3DRMVIEWPORT2* viewport)
1078 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1080 FIXME("(%p/%p)->(%p,%p,%d,%d,%d,%d,%p): stub\n", iface, This, Device, frame, xpos, ypos, width,
1083 return Direct3DRMViewport_create(&IID_IDirect3DRMViewport2, (IUnknown**)viewport);
1086 static HRESULT WINAPI IDirect3DRM3Impl_CreateWrap(IDirect3DRM3* iface, D3DRMWRAPTYPE type,
1087 LPDIRECT3DRMFRAME3 frame,
1088 D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
1089 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
1090 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
1091 D3DVALUE ou, D3DVALUE ov, D3DVALUE su,
1092 D3DVALUE sv, LPDIRECT3DRMWRAP* wrap)
1094 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1096 FIXME("(%p/%p)->(%d,%p,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%p): stub\n", iface, This, type,
1097 frame, ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv, wrap);
1102 static HRESULT WINAPI IDirect3DRM3Impl_CreateUserVisual(IDirect3DRM3* iface,
1103 D3DRMUSERVISUALCALLBACK cb, LPVOID arg,
1104 LPDIRECT3DRMUSERVISUAL* UserVisual)
1106 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1108 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, cb, arg, UserVisual);
1113 static HRESULT WINAPI IDirect3DRM3Impl_LoadTexture(IDirect3DRM3* iface, const char* filename,
1114 LPDIRECT3DRMTEXTURE3* Texture)
1116 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1118 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, filename, Texture);
1123 static HRESULT WINAPI IDirect3DRM3Impl_LoadTextureFromResource(IDirect3DRM3* iface, HMODULE mod,
1124 LPCSTR strName, LPCSTR strType,
1125 LPDIRECT3DRMTEXTURE3 * ppTexture)
1127 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1129 FIXME("(%p/%p)->(%p,%p,%p,%p): stub\n", iface, This, mod, strName, strType, ppTexture);
1134 static HRESULT WINAPI IDirect3DRM3Impl_SetSearchPath(IDirect3DRM3* iface, LPCSTR path)
1136 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1138 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
1143 static HRESULT WINAPI IDirect3DRM3Impl_AddSearchPath(IDirect3DRM3* iface, LPCSTR path)
1145 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1147 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
1152 static HRESULT WINAPI IDirect3DRM3Impl_GetSearchPath(IDirect3DRM3* iface, DWORD* size_return,
1155 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1157 FIXME("(%p/%p)->(%p,%s): stub\n", iface, This, size_return, path_return);
1162 static HRESULT WINAPI IDirect3DRM3Impl_SetDefaultTextureColors(IDirect3DRM3* iface, DWORD nb_colors)
1164 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1166 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_colors);
1171 static HRESULT WINAPI IDirect3DRM3Impl_SetDefaultTextureShades(IDirect3DRM3* iface, DWORD nb_shades)
1173 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1175 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_shades);
1180 static HRESULT WINAPI IDirect3DRM3Impl_GetDevices(IDirect3DRM3* iface,
1181 LPDIRECT3DRMDEVICEARRAY* DeviceArray)
1183 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1185 FIXME("(%p/%p)->(%p): stub\n", iface, This, DeviceArray);
1190 static HRESULT WINAPI IDirect3DRM3Impl_GetNamedObject(IDirect3DRM3* iface, const char* Name,
1191 LPDIRECT3DRMOBJECT* Object)
1193 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1195 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, Name, Object);
1200 static HRESULT WINAPI IDirect3DRM3Impl_EnumerateObjects(IDirect3DRM3* iface, D3DRMOBJECTCALLBACK cb,
1203 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1205 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, cb, arg);
1210 static HRESULT WINAPI IDirect3DRM3Impl_Load(IDirect3DRM3* iface, LPVOID ObjSource, LPVOID ObjID,
1211 LPIID* GUIDs, DWORD nb_GUIDs, D3DRMLOADOPTIONS LOFlags,
1212 D3DRMLOADCALLBACK LoadProc, LPVOID ArgLP,
1213 D3DRMLOADTEXTURECALLBACK LoadTextureProc, LPVOID ArgLTP,
1214 LPDIRECT3DRMFRAME3 ParentFrame)
1216 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1218 FIXME("(%p/%p)->(%p,%p,%p,%d,%d,%p,%p,%p,%p,%p): stub\n", iface, This, ObjSource, ObjID, GUIDs,
1219 nb_GUIDs, LOFlags, LoadProc, ArgLP, LoadTextureProc, ArgLTP, ParentFrame);
1224 static HRESULT WINAPI IDirect3DRM3Impl_Tick(IDirect3DRM3* iface, D3DVALUE tick)
1226 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1228 FIXME("(%p/%p)->(%f): stub\n", iface, This, tick);
1233 static HRESULT WINAPI IDirect3DRM3Impl_CreateProgressiveMesh(IDirect3DRM3* iface,
1234 LPDIRECT3DRMPROGRESSIVEMESH Mesh)
1236 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1238 FIXME("(%p/%p)->(%p): stub\n", iface, This, Mesh);
1243 static HRESULT WINAPI IDirect3DRM3Impl_RegisterClient(IDirect3DRM3* iface, REFGUID rguid,
1246 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1248 FIXME("(%p/%p)->(%s, %p): stub\n", iface, This, debugstr_guid(rguid), id);
1253 static HRESULT WINAPI IDirect3DRM3Impl_UnregisterClient(IDirect3DRM3* iface, REFGUID rguid)
1255 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1257 FIXME("(%p/%p)->(%s): stub\n", iface, This, debugstr_guid(rguid));
1262 static HRESULT WINAPI IDirect3DRM3Impl_CreateClippedVisual(IDirect3DRM3* iface,
1263 LPDIRECT3DRMVISUAL vis,
1264 LPDIRECT3DRMCLIPPEDVISUAL* clippedvis)
1266 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1268 FIXME("(%p/%p)->(%p, %p): stub\n", iface, This, vis, clippedvis);
1273 static HRESULT WINAPI IDirect3DRM3Impl_SetOptions(IDirect3DRM3* iface, DWORD opt)
1275 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1277 FIXME("(%p/%p)->(%d): stub\n", iface, This, opt);
1282 static HRESULT WINAPI IDirect3DRM3Impl_GetOptions(IDirect3DRM3* iface, LPDWORD opt)
1284 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1286 FIXME("(%p/%p)->(%p): stub\n", iface, This, opt);
1291 static const struct IDirect3DRM3Vtbl Direct3DRM3_Vtbl =
1293 IDirect3DRM3Impl_QueryInterface,
1294 IDirect3DRM3Impl_AddRef,
1295 IDirect3DRM3Impl_Release,
1296 IDirect3DRM3Impl_CreateObject,
1297 IDirect3DRM3Impl_CreateFrame,
1298 IDirect3DRM3Impl_CreateMesh,
1299 IDirect3DRM3Impl_CreateMeshBuilder,
1300 IDirect3DRM3Impl_CreateFace,
1301 IDirect3DRM3Impl_CreateAnimation,
1302 IDirect3DRM3Impl_CreateAnimationSet,
1303 IDirect3DRM3Impl_CreateTexture,
1304 IDirect3DRM3Impl_CreateLight,
1305 IDirect3DRM3Impl_CreateLightRGB,
1306 IDirect3DRM3Impl_Material,
1307 IDirect3DRM3Impl_CreateDevice,
1308 IDirect3DRM3Impl_CreateDeviceFromSurface,
1309 IDirect3DRM3Impl_CreateDeviceFromD3D,
1310 IDirect3DRM3Impl_CreateDeviceFromClipper,
1311 IDirect3DRM3Impl_CreateTextureFromSurface,
1312 IDirect3DRM3Impl_CreateShadow,
1313 IDirect3DRM3Impl_CreateViewport,
1314 IDirect3DRM3Impl_CreateWrap,
1315 IDirect3DRM3Impl_CreateUserVisual,
1316 IDirect3DRM3Impl_LoadTexture,
1317 IDirect3DRM3Impl_LoadTextureFromResource,
1318 IDirect3DRM3Impl_SetSearchPath,
1319 IDirect3DRM3Impl_AddSearchPath,
1320 IDirect3DRM3Impl_GetSearchPath,
1321 IDirect3DRM3Impl_SetDefaultTextureColors,
1322 IDirect3DRM3Impl_SetDefaultTextureShades,
1323 IDirect3DRM3Impl_GetDevices,
1324 IDirect3DRM3Impl_GetNamedObject,
1325 IDirect3DRM3Impl_EnumerateObjects,
1326 IDirect3DRM3Impl_Load,
1327 IDirect3DRM3Impl_Tick,
1328 IDirect3DRM3Impl_CreateProgressiveMesh,
1329 IDirect3DRM3Impl_RegisterClient,
1330 IDirect3DRM3Impl_UnregisterClient,
1331 IDirect3DRM3Impl_CreateClippedVisual,
1332 IDirect3DRM3Impl_SetOptions,
1333 IDirect3DRM3Impl_GetOptions
1336 HRESULT Direct3DRM_create(IUnknown** ppObj)
1338 IDirect3DRMImpl* object;
1340 TRACE("(%p)\n", ppObj);
1342 object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirect3DRMImpl));
1345 ERR("Out of memory\n");
1346 return E_OUTOFMEMORY;
1349 object->IDirect3DRM_iface.lpVtbl = &Direct3DRM_Vtbl;
1350 object->IDirect3DRM2_iface.lpVtbl = &Direct3DRM2_Vtbl;
1351 object->IDirect3DRM3_iface.lpVtbl = &Direct3DRM3_Vtbl;
1354 *ppObj = (IUnknown*)&object->IDirect3DRM_iface;