d3drm: Implement IDirect3DRMFrameX_AddChild.
[wine/multimedia.git] / dlls / d3drm / frame.c
blob985fe5858aa24f2504062dbc97d32999d14866a0
1 /*
2 * Implementation of IDirect3DRMFrame Interface
4 * Copyright 2011, 2012 André Hentschel
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #include <assert.h>
22 #include "wine/debug.h"
24 #define COBJMACROS
26 #include "winbase.h"
27 #include "wingdi.h"
29 #include "d3drm_private.h"
31 WINE_DEFAULT_DEBUG_CHANNEL(d3drm);
33 typedef struct {
34 IDirect3DRMFrame2 IDirect3DRMFrame2_iface;
35 IDirect3DRMFrame3 IDirect3DRMFrame3_iface;
36 LONG ref;
37 ULONG nb_children;
38 ULONG children_capacity;
39 IDirect3DRMFrame3** children;
40 } IDirect3DRMFrameImpl;
42 static inline IDirect3DRMFrameImpl *impl_from_IDirect3DRMFrame2(IDirect3DRMFrame2 *iface)
44 return CONTAINING_RECORD(iface, IDirect3DRMFrameImpl, IDirect3DRMFrame2_iface);
47 static inline IDirect3DRMFrameImpl *impl_from_IDirect3DRMFrame3(IDirect3DRMFrame3 *iface)
49 return CONTAINING_RECORD(iface, IDirect3DRMFrameImpl, IDirect3DRMFrame3_iface);
52 static inline IDirect3DRMFrameImpl *unsafe_impl_from_IDirect3DRMFrame2(IDirect3DRMFrame2 *iface);
54 /*** IUnknown methods ***/
55 static HRESULT WINAPI IDirect3DRMFrame2Impl_QueryInterface(IDirect3DRMFrame2* iface,
56 REFIID riid, void** object)
58 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
60 TRACE("(%p/%p)->(%s, %p)\n", iface, This, debugstr_guid(riid), object);
62 *object = NULL;
64 if(IsEqualGUID(riid, &IID_IUnknown) ||
65 IsEqualGUID(riid, &IID_IDirect3DRMFrame) ||
66 IsEqualGUID(riid, &IID_IDirect3DRMFrame2))
68 *object = &This->IDirect3DRMFrame2_iface;
70 else if(IsEqualGUID(riid, &IID_IDirect3DRMFrame3))
72 *object = &This->IDirect3DRMFrame3_iface;
74 else
76 FIXME("interface %s not implemented\n", debugstr_guid(riid));
77 return E_NOINTERFACE;
80 IDirect3DRMFrame2_AddRef(iface);
81 return S_OK;
84 static ULONG WINAPI IDirect3DRMFrame2Impl_AddRef(IDirect3DRMFrame2* iface)
86 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
87 ULONG ref = InterlockedIncrement(&This->ref);
89 TRACE("(%p)->(): new ref = %d\n", This, ref);
91 return ref;
94 static ULONG WINAPI IDirect3DRMFrame2Impl_Release(IDirect3DRMFrame2* iface)
96 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
97 ULONG ref = InterlockedDecrement(&This->ref);
98 ULONG i;
100 TRACE("(%p)->(): new ref = %d\n", This, ref);
102 if (!ref)
104 for (i = 0; i < This->nb_children; i++)
105 IDirect3DRMFrame3_Release(This->children[i]);
106 HeapFree(GetProcessHeap(), 0, This->children);
107 HeapFree(GetProcessHeap(), 0, This);
110 return ref;
113 /*** IDirect3DRMObject methods ***/
114 static HRESULT WINAPI IDirect3DRMFrame2Impl_Clone(IDirect3DRMFrame2* iface,
115 LPUNKNOWN unkwn, REFIID riid,
116 LPVOID* object)
118 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
120 FIXME("(%p/%p)->(%p, %s, %p): stub\n", iface, This, unkwn, debugstr_guid(riid), object);
122 return E_NOTIMPL;
125 static HRESULT WINAPI IDirect3DRMFrame2Impl_AddDestroyCallback(IDirect3DRMFrame2* iface,
126 D3DRMOBJECTCALLBACK cb,
127 LPVOID argument)
129 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
131 FIXME("(%p/%p)->(%p, %p): stub\n", iface, This, cb, argument);
133 return E_NOTIMPL;
136 static HRESULT WINAPI IDirect3DRMFrame2Impl_DeleteDestroyCallback(IDirect3DRMFrame2* iface,
137 D3DRMOBJECTCALLBACK cb,
138 LPVOID argument)
140 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
142 FIXME("(%p/%p)->(%p, %p): stub\n", iface, This, cb, argument);
144 return E_NOTIMPL;
147 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetAppData(IDirect3DRMFrame2* iface,
148 DWORD data)
150 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
152 FIXME("(%p/%p)->(%u): stub\n", iface, This, data);
154 return E_NOTIMPL;
157 static DWORD WINAPI IDirect3DRMFrame2Impl_GetAppData(IDirect3DRMFrame2* iface)
159 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
161 FIXME("(%p/%p)->(): stub\n", iface, This);
163 return 0;
166 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetName(IDirect3DRMFrame2* iface, LPCSTR name)
168 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
170 FIXME("(%p/%p)->(%s): stub\n", iface, This, name);
172 return E_NOTIMPL;
175 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetName(IDirect3DRMFrame2* iface,
176 LPDWORD size, LPSTR name)
178 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
180 FIXME("(%p/%p)->(%p, %p): stub\n", iface, This, size, name);
182 return E_NOTIMPL;
185 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetClassName(IDirect3DRMFrame2* iface,
186 LPDWORD size, LPSTR name)
188 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
190 FIXME("(%p/%p)->(%p, %p): stub\n", iface, This, size, name);
192 return E_NOTIMPL;
195 /*** IDirect3DRMFrame methods ***/
196 static HRESULT WINAPI IDirect3DRMFrame2Impl_AddChild(IDirect3DRMFrame2* iface,
197 LPDIRECT3DRMFRAME child)
199 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
200 IDirect3DRMFrameImpl *frame;
202 TRACE("(%p/%p)->(%p)\n", iface, This, child);
204 frame = unsafe_impl_from_IDirect3DRMFrame2((LPDIRECT3DRMFRAME2)child);
206 if (!frame)
207 return D3DRMERR_BADOBJECT;
209 return IDirect3DRMFrame3_AddChild(&This->IDirect3DRMFrame3_iface, &frame->IDirect3DRMFrame3_iface);
212 static HRESULT WINAPI IDirect3DRMFrame2Impl_AddLight(IDirect3DRMFrame2* iface,
213 LPDIRECT3DRMLIGHT light)
215 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
217 FIXME("(%p/%p)->(%p): stub\n", iface, This, light);
219 return E_NOTIMPL;
222 static HRESULT WINAPI IDirect3DRMFrame2Impl_AddMoveCallback(IDirect3DRMFrame2* iface,
223 D3DRMFRAMEMOVECALLBACK cb, VOID *arg)
225 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
227 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, cb, arg);
229 return E_NOTIMPL;
232 static HRESULT WINAPI IDirect3DRMFrame2Impl_AddTransform(IDirect3DRMFrame2* iface,
233 D3DRMCOMBINETYPE type,
234 D3DRMMATRIX4D matrix)
236 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
238 FIXME("(%p/%p)->(%u,%p): stub\n", iface, This, type, matrix);
240 return E_NOTIMPL;
243 static HRESULT WINAPI IDirect3DRMFrame2Impl_AddTranslation(IDirect3DRMFrame2* iface,
244 D3DRMCOMBINETYPE type,
245 D3DVALUE x, D3DVALUE y, D3DVALUE z)
247 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
249 FIXME("(%p/%p)->(%u,%f,%f,%f): stub\n", iface, This, type, x, y, z);
251 return E_NOTIMPL;
254 static HRESULT WINAPI IDirect3DRMFrame2Impl_AddScale(IDirect3DRMFrame2* iface,
255 D3DRMCOMBINETYPE type,
256 D3DVALUE sx, D3DVALUE sy, D3DVALUE sz)
258 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
260 FIXME("(%p/%p)->(%u,%f,%f,%f): stub\n", iface, This, type, sx, sy, sz);
262 return E_NOTIMPL;
265 static HRESULT WINAPI IDirect3DRMFrame2Impl_AddRotation(IDirect3DRMFrame2* iface,
266 D3DRMCOMBINETYPE type,
267 D3DVALUE x, D3DVALUE y, D3DVALUE z,
268 D3DVALUE theta)
270 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
272 FIXME("(%p/%p)->(%u,%f,%f,%f,%f): stub\n", iface, This, type, x, y, z, theta);
274 return E_NOTIMPL;
277 static HRESULT WINAPI IDirect3DRMFrame2Impl_AddVisual(IDirect3DRMFrame2* iface,
278 LPDIRECT3DRMVISUAL vis)
280 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
282 FIXME("(%p/%p)->(%p): stub\n", iface, This, vis);
284 return E_NOTIMPL;
287 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetChildren(IDirect3DRMFrame2* iface,
288 LPDIRECT3DRMFRAMEARRAY *children)
290 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
292 FIXME("(%p/%p)->(%p): stub\n", iface, This, children);
294 return E_NOTIMPL;
297 static D3DCOLOR WINAPI IDirect3DRMFrame2Impl_GetColor(IDirect3DRMFrame2* iface)
299 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
301 FIXME("(%p/%p)->(): stub\n", iface, This);
303 return 0;
306 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetLights(IDirect3DRMFrame2* iface,
307 LPDIRECT3DRMLIGHTARRAY *lights)
309 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
311 FIXME("(%p/%p)->(%p): stub\n", iface, This, lights);
313 return E_NOTIMPL;
316 static D3DRMMATERIALMODE WINAPI IDirect3DRMFrame2Impl_GetMaterialMode(IDirect3DRMFrame2* iface)
318 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
320 FIXME("(%p/%p)->(): stub\n", iface, This);
322 return D3DRMMATERIAL_FROMPARENT;
325 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetParent(IDirect3DRMFrame2* iface,
326 LPDIRECT3DRMFRAME * frame)
328 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
330 FIXME("(%p/%p)->(%p): stub\n", iface, This, frame);
332 return E_NOTIMPL;
335 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetPosition(IDirect3DRMFrame2* iface,
336 LPDIRECT3DRMFRAME reference,
337 LPD3DVECTOR return_position)
339 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
341 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, reference, return_position);
343 return E_NOTIMPL;
346 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetRotation(IDirect3DRMFrame2* iface,
347 LPDIRECT3DRMFRAME reference,
348 LPD3DVECTOR axis, LPD3DVALUE return_theta)
350 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
352 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, reference, axis, return_theta);
354 return E_NOTIMPL;
357 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetScene(IDirect3DRMFrame2* iface,
358 LPDIRECT3DRMFRAME * frame)
360 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
362 FIXME("(%p/%p)->(%p): stub\n", iface, This, frame);
364 return E_NOTIMPL;
367 static D3DRMSORTMODE WINAPI IDirect3DRMFrame2Impl_GetSortMode(IDirect3DRMFrame2* iface)
369 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
371 FIXME("(%p/%p)->(): stub\n", iface, This);
373 return D3DRMSORT_FROMPARENT;
376 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetTexture(IDirect3DRMFrame2* iface,
377 LPDIRECT3DRMTEXTURE * tex)
379 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
381 FIXME("(%p/%p)->(%p): stub\n", iface, This, tex);
383 return E_NOTIMPL;
386 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetTransform(IDirect3DRMFrame2* iface,
387 D3DRMMATRIX4D return_matrix)
389 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
391 FIXME("(%p/%p)->(%p): stub\n", iface, This, return_matrix);
393 return E_NOTIMPL;
396 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetVelocity(IDirect3DRMFrame2* iface,
397 LPDIRECT3DRMFRAME reference,
398 LPD3DVECTOR return_velocity,
399 BOOL with_rotation)
401 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
403 FIXME("(%p/%p)->(%p,%p,%d): stub\n", iface, This, reference, return_velocity, with_rotation);
405 return E_NOTIMPL;
408 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetOrientation(IDirect3DRMFrame2* iface,
409 LPDIRECT3DRMFRAME reference,
410 LPD3DVECTOR dir, LPD3DVECTOR up)
412 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
414 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, reference, dir, up);
416 return E_NOTIMPL;
419 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetVisuals(IDirect3DRMFrame2* iface,
420 LPDIRECT3DRMVISUALARRAY *visuals)
422 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
424 FIXME("(%p/%p)->(%p): stub\n", iface, This, visuals);
426 return E_NOTIMPL;
429 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetTextureTopology(IDirect3DRMFrame2* iface,
430 BOOL *wrap_u, BOOL *wrap_v)
432 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
434 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, wrap_u, wrap_v);
436 return E_NOTIMPL;
439 static HRESULT WINAPI IDirect3DRMFrame2Impl_InverseTransform(IDirect3DRMFrame2* iface,
440 D3DVECTOR *d, D3DVECTOR *s)
442 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
444 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, d, s);
446 return E_NOTIMPL;
449 static HRESULT WINAPI IDirect3DRMFrame2Impl_Load(IDirect3DRMFrame2* iface, LPVOID filename,
450 LPVOID name, D3DRMLOADOPTIONS loadflags,
451 D3DRMLOADTEXTURECALLBACK cb, LPVOID lpArg)
453 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
455 FIXME("(%p/%p)->(%p,%p,%u,%p,%p): stub\n", iface, This, filename, name, loadflags, cb, lpArg);
457 return E_NOTIMPL;
460 static HRESULT WINAPI IDirect3DRMFrame2Impl_LookAt(IDirect3DRMFrame2* iface,
461 LPDIRECT3DRMFRAME target,
462 LPDIRECT3DRMFRAME reference,
463 D3DRMFRAMECONSTRAINT constraint)
465 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
467 FIXME("(%p/%p)->(%p,%p,%u): stub\n", iface, This, target, reference, constraint);
469 return E_NOTIMPL;
472 static HRESULT WINAPI IDirect3DRMFrame2Impl_Move(IDirect3DRMFrame2* iface, D3DVALUE delta)
474 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
476 FIXME("(%p/%p)->(%f): stub\n", iface, This, delta);
478 return E_NOTIMPL;
481 static HRESULT WINAPI IDirect3DRMFrame2Impl_DeleteChild(IDirect3DRMFrame2* iface,
482 LPDIRECT3DRMFRAME frame)
484 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
486 FIXME("(%p/%p)->(%p): stub\n", iface, This, frame);
488 return E_NOTIMPL;
491 static HRESULT WINAPI IDirect3DRMFrame2Impl_DeleteLight(IDirect3DRMFrame2* iface,
492 LPDIRECT3DRMLIGHT light)
494 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
496 FIXME("(%p/%p)->(%p): stub\n", iface, This, light);
498 return E_NOTIMPL;
501 static HRESULT WINAPI IDirect3DRMFrame2Impl_DeleteMoveCallback(IDirect3DRMFrame2* iface,
502 D3DRMFRAMEMOVECALLBACK cb, VOID *arg)
504 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
506 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, cb, arg);
508 return E_NOTIMPL;
511 static HRESULT WINAPI IDirect3DRMFrame2Impl_DeleteVisual(IDirect3DRMFrame2* iface,
512 LPDIRECT3DRMVISUAL vis)
514 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
516 FIXME("(%p/%p)->(%p): stub\n", iface, This, vis);
518 return E_NOTIMPL;
521 static D3DCOLOR WINAPI IDirect3DRMFrame2Impl_GetSceneBackground(IDirect3DRMFrame2* iface)
523 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
525 FIXME("(%p/%p)->(): stub\n", iface, This);
527 return 0;
530 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetSceneBackgroundDepth(IDirect3DRMFrame2* iface,
531 LPDIRECTDRAWSURFACE * surface)
533 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
535 FIXME("(%p/%p)->(%p): stub\n", iface, This, surface);
537 return E_NOTIMPL;
540 static D3DCOLOR WINAPI IDirect3DRMFrame2Impl_GetSceneFogColor(IDirect3DRMFrame2* iface)
542 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
544 FIXME("(%p/%p)->(): stub\n", iface, This);
546 return 0;
549 static BOOL WINAPI IDirect3DRMFrame2Impl_GetSceneFogEnable(IDirect3DRMFrame2* iface)
551 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
553 FIXME("(%p/%p)->(): stub\n", iface, This);
555 return FALSE;
558 static D3DRMFOGMODE WINAPI IDirect3DRMFrame2Impl_GetSceneFogMode(IDirect3DRMFrame2* iface)
560 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
562 FIXME("(%p/%p)->(): stub\n", iface, This);
564 return D3DRMFOG_LINEAR;
567 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetSceneFogParams(IDirect3DRMFrame2* iface,
568 D3DVALUE *return_start,
569 D3DVALUE *return_end,
570 D3DVALUE *return_density)
572 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
574 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, return_start, return_end, return_density);
576 return E_NOTIMPL;
579 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetSceneBackground(IDirect3DRMFrame2* iface,
580 D3DCOLOR color)
582 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
584 FIXME("(%p/%p)->(%u): stub\n", iface, This, color);
586 return E_NOTIMPL;
589 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetSceneBackgroundRGB(IDirect3DRMFrame2* iface,
590 D3DVALUE red, D3DVALUE green,
591 D3DVALUE blue)
593 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
595 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface, This, red, green, blue);
597 return E_NOTIMPL;
600 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetSceneBackgroundDepth(IDirect3DRMFrame2* iface,
601 LPDIRECTDRAWSURFACE surface)
603 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
605 FIXME("(%p/%p)->(%p): stub\n", iface, This, surface);
607 return E_NOTIMPL;
610 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetSceneBackgroundImage(IDirect3DRMFrame2* iface,
611 LPDIRECT3DRMTEXTURE texture)
613 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
615 FIXME("(%p/%p)->(%p): stub\n", iface, This, texture);
617 return E_NOTIMPL;
620 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetSceneFogEnable(IDirect3DRMFrame2* iface, BOOL enable)
622 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
624 FIXME("(%p/%p)->(%d): stub\n", iface, This, enable);
626 return E_NOTIMPL;
629 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetSceneFogColor(IDirect3DRMFrame2* iface,
630 D3DCOLOR color)
632 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
634 FIXME("(%p/%p)->(%u): stub\n", iface, This, color);
636 return E_NOTIMPL;
639 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetSceneFogMode(IDirect3DRMFrame2* iface,
640 D3DRMFOGMODE mode)
642 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
644 FIXME("(%p/%p)->(%u): stub\n", iface, This, mode);
646 return E_NOTIMPL;
649 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetSceneFogParams(IDirect3DRMFrame2* iface,
650 D3DVALUE start, D3DVALUE end,
651 D3DVALUE density)
653 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
655 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface, This, start, end, density);
657 return E_NOTIMPL;
660 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetColor(IDirect3DRMFrame2* iface, D3DCOLOR color)
662 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
664 FIXME("(%p/%p)->(%u): stub\n", iface, This, color);
666 return E_NOTIMPL;
669 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetColorRGB(IDirect3DRMFrame2* iface, D3DVALUE red,
670 D3DVALUE green, D3DVALUE blue)
672 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
674 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface, This, red, green, blue);
676 return E_NOTIMPL;
679 static D3DRMZBUFFERMODE WINAPI IDirect3DRMFrame2Impl_GetZbufferMode(IDirect3DRMFrame2* iface)
681 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
683 FIXME("(%p/%p)->(): stub\n", iface, This);
685 return D3DRMZBUFFER_FROMPARENT;
688 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetMaterialMode(IDirect3DRMFrame2* iface,
689 D3DRMMATERIALMODE mode)
691 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
693 FIXME("(%p/%p)->(%u): stub\n", iface, This, mode);
695 return E_NOTIMPL;
698 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetOrientation(IDirect3DRMFrame2* iface,
699 LPDIRECT3DRMFRAME reference,
700 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
701 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz )
703 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
705 FIXME("(%p/%p)->(%p,%f,%f,%f,%f,%f,%f): stub\n", iface, This, reference,
706 dx, dy, dz, ux, uy, uz);
708 return E_NOTIMPL;
711 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetPosition(IDirect3DRMFrame2* iface,
712 LPDIRECT3DRMFRAME reference,
713 D3DVALUE x, D3DVALUE y, D3DVALUE z)
715 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
717 FIXME("(%p/%p)->(%p,%f,%f,%f): stub\n", iface, This, reference, x, y, z);
719 return E_NOTIMPL;
722 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetRotation(IDirect3DRMFrame2* iface,
723 LPDIRECT3DRMFRAME reference,
724 D3DVALUE x, D3DVALUE y, D3DVALUE z,
725 D3DVALUE theta)
727 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
729 FIXME("(%p/%p)->(%p,%f,%f,%f,%f): stub\n", iface, This, reference, x, y, z, theta);
731 return E_NOTIMPL;
734 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetSortMode(IDirect3DRMFrame2* iface,
735 D3DRMSORTMODE mode)
737 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
739 FIXME("(%p/%p)->(%u): stub\n", iface, This, mode);
741 return E_NOTIMPL;
744 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetTexture(IDirect3DRMFrame2* iface,
745 LPDIRECT3DRMTEXTURE texture)
747 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
749 FIXME("(%p/%p)->(%p): stub\n", iface, This, texture);
751 return E_NOTIMPL;
754 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetTextureTopology(IDirect3DRMFrame2* iface,
755 BOOL wrap_u, BOOL wrap_v)
757 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
759 FIXME("(%p/%p)->(%d,%d): stub\n", iface, This, wrap_u, wrap_v);
761 return E_NOTIMPL;
764 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetVelocity(IDirect3DRMFrame2* iface,
765 LPDIRECT3DRMFRAME reference,
766 D3DVALUE x, D3DVALUE y, D3DVALUE z,
767 BOOL with_rotation)
769 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
771 FIXME("(%p/%p)->(%p,%f,%f,%f,%d): stub\n", iface, This, reference, x, y, z, with_rotation);
773 return E_NOTIMPL;
776 static HRESULT WINAPI IDirect3DRMFrame2Impl_SetZbufferMode(IDirect3DRMFrame2* iface,
777 D3DRMZBUFFERMODE mode)
779 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
781 FIXME("(%p/%p)->(%u): stub\n", iface, This, mode);
783 return E_NOTIMPL;
786 static HRESULT WINAPI IDirect3DRMFrame2Impl_Transform(IDirect3DRMFrame2* iface, D3DVECTOR *d,
787 D3DVECTOR *s)
789 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
791 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, d, s);
793 return E_NOTIMPL;
796 /*** IDirect3DRMFrame2 methods ***/
797 static HRESULT WINAPI IDirect3DRMFrame2Impl_AddMoveCallback2(IDirect3DRMFrame2* iface,
798 D3DRMFRAMEMOVECALLBACK cb, VOID *arg,
799 DWORD flags)
801 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
803 FIXME("(%p/%p)->(%p,%p,%u): stub\n", iface, This, cb, arg, flags);
805 return E_NOTIMPL;
808 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetBox(IDirect3DRMFrame2* iface, LPD3DRMBOX box)
810 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
812 FIXME("(%p/%p)->(%p): stub\n", iface, This, box);
814 return E_NOTIMPL;
817 static BOOL WINAPI IDirect3DRMFrame2Impl_GetBoxEnable(IDirect3DRMFrame2* iface)
819 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
821 FIXME("(%p/%p)->(): stub\n", iface, This);
823 return E_NOTIMPL;
826 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetAxes(IDirect3DRMFrame2* iface,
827 LPD3DVECTOR dir, LPD3DVECTOR up)
829 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
831 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, dir, up);
833 return E_NOTIMPL;
836 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetMaterial(IDirect3DRMFrame2* iface,
837 LPDIRECT3DRMMATERIAL *material)
839 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
841 FIXME("(%p/%p)->(%p): stub\n", iface, This, material);
843 return E_NOTIMPL;
846 static BOOL WINAPI IDirect3DRMFrame2Impl_GetInheritAxes(IDirect3DRMFrame2* iface)
848 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
850 FIXME("(%p/%p)->(): stub\n", iface, This);
852 return E_NOTIMPL;
855 static HRESULT WINAPI IDirect3DRMFrame2Impl_GetHierarchyBox(IDirect3DRMFrame2* iface,
856 LPD3DRMBOX box)
858 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame2(iface);
860 FIXME("(%p/%p)->(%p): stub\n", iface, This, box);
862 return E_NOTIMPL;
865 static const struct IDirect3DRMFrame2Vtbl Direct3DRMFrame2_Vtbl =
867 /*** IUnknown methods ***/
868 IDirect3DRMFrame2Impl_QueryInterface,
869 IDirect3DRMFrame2Impl_AddRef,
870 IDirect3DRMFrame2Impl_Release,
871 /*** IDirect3DRMObject methods ***/
872 IDirect3DRMFrame2Impl_Clone,
873 IDirect3DRMFrame2Impl_AddDestroyCallback,
874 IDirect3DRMFrame2Impl_DeleteDestroyCallback,
875 IDirect3DRMFrame2Impl_SetAppData,
876 IDirect3DRMFrame2Impl_GetAppData,
877 IDirect3DRMFrame2Impl_SetName,
878 IDirect3DRMFrame2Impl_GetName,
879 IDirect3DRMFrame2Impl_GetClassName,
880 /*** IDirect3DRMFrame methods ***/
881 IDirect3DRMFrame2Impl_AddChild,
882 IDirect3DRMFrame2Impl_AddLight,
883 IDirect3DRMFrame2Impl_AddMoveCallback,
884 IDirect3DRMFrame2Impl_AddTransform,
885 IDirect3DRMFrame2Impl_AddTranslation,
886 IDirect3DRMFrame2Impl_AddScale,
887 IDirect3DRMFrame2Impl_AddRotation,
888 IDirect3DRMFrame2Impl_AddVisual,
889 IDirect3DRMFrame2Impl_GetChildren,
890 IDirect3DRMFrame2Impl_GetColor,
891 IDirect3DRMFrame2Impl_GetLights,
892 IDirect3DRMFrame2Impl_GetMaterialMode,
893 IDirect3DRMFrame2Impl_GetParent,
894 IDirect3DRMFrame2Impl_GetPosition,
895 IDirect3DRMFrame2Impl_GetRotation,
896 IDirect3DRMFrame2Impl_GetScene,
897 IDirect3DRMFrame2Impl_GetSortMode,
898 IDirect3DRMFrame2Impl_GetTexture,
899 IDirect3DRMFrame2Impl_GetTransform,
900 IDirect3DRMFrame2Impl_GetVelocity,
901 IDirect3DRMFrame2Impl_GetOrientation,
902 IDirect3DRMFrame2Impl_GetVisuals,
903 IDirect3DRMFrame2Impl_GetTextureTopology,
904 IDirect3DRMFrame2Impl_InverseTransform,
905 IDirect3DRMFrame2Impl_Load,
906 IDirect3DRMFrame2Impl_LookAt,
907 IDirect3DRMFrame2Impl_Move,
908 IDirect3DRMFrame2Impl_DeleteChild,
909 IDirect3DRMFrame2Impl_DeleteLight,
910 IDirect3DRMFrame2Impl_DeleteMoveCallback,
911 IDirect3DRMFrame2Impl_DeleteVisual,
912 IDirect3DRMFrame2Impl_GetSceneBackground,
913 IDirect3DRMFrame2Impl_GetSceneBackgroundDepth,
914 IDirect3DRMFrame2Impl_GetSceneFogColor,
915 IDirect3DRMFrame2Impl_GetSceneFogEnable,
916 IDirect3DRMFrame2Impl_GetSceneFogMode,
917 IDirect3DRMFrame2Impl_GetSceneFogParams,
918 IDirect3DRMFrame2Impl_SetSceneBackground,
919 IDirect3DRMFrame2Impl_SetSceneBackgroundRGB,
920 IDirect3DRMFrame2Impl_SetSceneBackgroundDepth,
921 IDirect3DRMFrame2Impl_SetSceneBackgroundImage,
922 IDirect3DRMFrame2Impl_SetSceneFogEnable,
923 IDirect3DRMFrame2Impl_SetSceneFogColor,
924 IDirect3DRMFrame2Impl_SetSceneFogMode,
925 IDirect3DRMFrame2Impl_SetSceneFogParams,
926 IDirect3DRMFrame2Impl_SetColor,
927 IDirect3DRMFrame2Impl_SetColorRGB,
928 IDirect3DRMFrame2Impl_GetZbufferMode,
929 IDirect3DRMFrame2Impl_SetMaterialMode,
930 IDirect3DRMFrame2Impl_SetOrientation,
931 IDirect3DRMFrame2Impl_SetPosition,
932 IDirect3DRMFrame2Impl_SetRotation,
933 IDirect3DRMFrame2Impl_SetSortMode,
934 IDirect3DRMFrame2Impl_SetTexture,
935 IDirect3DRMFrame2Impl_SetTextureTopology,
936 IDirect3DRMFrame2Impl_SetVelocity,
937 IDirect3DRMFrame2Impl_SetZbufferMode,
938 IDirect3DRMFrame2Impl_Transform,
939 /*** IDirect3DRMFrame2 methods ***/
940 IDirect3DRMFrame2Impl_AddMoveCallback2,
941 IDirect3DRMFrame2Impl_GetBox,
942 IDirect3DRMFrame2Impl_GetBoxEnable,
943 IDirect3DRMFrame2Impl_GetAxes,
944 IDirect3DRMFrame2Impl_GetMaterial,
945 IDirect3DRMFrame2Impl_GetInheritAxes,
946 IDirect3DRMFrame2Impl_GetHierarchyBox
949 /*** IUnknown methods ***/
950 static HRESULT WINAPI IDirect3DRMFrame3Impl_QueryInterface(IDirect3DRMFrame3* iface,
951 REFIID riid, void** object)
953 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
954 return IDirect3DRMFrame_QueryInterface(&This->IDirect3DRMFrame2_iface, riid, object);
957 static ULONG WINAPI IDirect3DRMFrame3Impl_AddRef(IDirect3DRMFrame3* iface)
959 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
960 return IDirect3DRMFrame2_AddRef(&This->IDirect3DRMFrame2_iface);
963 static ULONG WINAPI IDirect3DRMFrame3Impl_Release(IDirect3DRMFrame3* iface)
965 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
966 return IDirect3DRMFrame2_Release(&This->IDirect3DRMFrame2_iface);
969 /*** IDirect3DRMObject methods ***/
970 static HRESULT WINAPI IDirect3DRMFrame3Impl_Clone(IDirect3DRMFrame3* iface,
971 LPUNKNOWN unkwn, REFIID riid,
972 LPVOID* object)
974 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
976 FIXME("(%p/%p)->(%p, %s, %p): stub\n", iface, This, unkwn, debugstr_guid(riid), object);
978 return E_NOTIMPL;
981 static HRESULT WINAPI IDirect3DRMFrame3Impl_AddDestroyCallback(IDirect3DRMFrame3* iface,
982 D3DRMOBJECTCALLBACK cb,
983 LPVOID argument)
985 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
987 FIXME("(%p/%p)->(%p, %p): stub\n", iface, This, cb, argument);
989 return E_NOTIMPL;
992 static HRESULT WINAPI IDirect3DRMFrame3Impl_DeleteDestroyCallback(IDirect3DRMFrame3* iface,
993 D3DRMOBJECTCALLBACK cb,
994 LPVOID argument)
996 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
998 FIXME("(%p/%p)->(%p, %p): stub\n", iface, This, cb, argument);
1000 return E_NOTIMPL;
1003 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetAppData(IDirect3DRMFrame3* iface,
1004 DWORD data)
1006 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1008 FIXME("(%p/%p)->(%u): stub\n", iface, This, data);
1010 return E_NOTIMPL;
1013 static DWORD WINAPI IDirect3DRMFrame3Impl_GetAppData(IDirect3DRMFrame3* iface)
1015 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1017 FIXME("(%p/%p)->(): stub\n", iface, This);
1019 return 0;
1022 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetName(IDirect3DRMFrame3* iface, LPCSTR name)
1024 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1026 FIXME("(%p/%p)->(%s): stub\n", iface, This, name);
1028 return E_NOTIMPL;
1031 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetName(IDirect3DRMFrame3* iface,
1032 LPDWORD size, LPSTR name)
1034 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1036 FIXME("(%p/%p)->(%p, %p): stub\n", iface, This, size, name);
1038 return E_NOTIMPL;
1041 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetClassName(IDirect3DRMFrame3* iface,
1042 LPDWORD size, LPSTR name)
1044 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1046 FIXME("(%p/%p)->(%p, %p): stub\n", iface, This, size, name);
1048 return E_NOTIMPL;
1051 /*** IDirect3DRMFrame methods ***/
1052 static HRESULT WINAPI IDirect3DRMFrame3Impl_AddChild(IDirect3DRMFrame3* iface,
1053 LPDIRECT3DRMFRAME3 child)
1055 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1056 ULONG i;
1057 IDirect3DRMFrame3** children;
1059 TRACE("(%p/%p)->(%p)\n", iface, This, child);
1061 if (!child)
1062 return D3DRMERR_BADOBJECT;
1064 /* Check if already existing and return gracefully without increasing ref count */
1065 for (i = 0; i < This->nb_children; i++)
1066 if (This->children[i] == child)
1067 return D3DRM_OK;
1069 if ((This->nb_children + 1) > This->children_capacity)
1071 ULONG new_capacity;
1073 if (!This->children_capacity)
1075 new_capacity = 16;
1076 children = HeapAlloc(GetProcessHeap(), 0, new_capacity * sizeof(IDirect3DRMFrame3*));
1078 else
1080 new_capacity = This->children_capacity * 2;
1081 children = HeapReAlloc(GetProcessHeap(), 0, This->children, new_capacity * sizeof(IDirect3DRMFrame3*));
1084 if (!children)
1085 return E_OUTOFMEMORY;
1087 This->children_capacity = new_capacity;
1088 This->children = children;
1091 This->children[This->nb_children++] = child;
1092 IDirect3DRMFrame3_AddRef(child);
1094 return D3DRM_OK;
1097 static HRESULT WINAPI IDirect3DRMFrame3Impl_AddLight(IDirect3DRMFrame3* iface,
1098 LPDIRECT3DRMLIGHT light)
1100 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1102 FIXME("(%p/%p)->(%p): stub\n", iface, This, light);
1104 return E_NOTIMPL;
1107 static HRESULT WINAPI IDirect3DRMFrame3Impl_AddMoveCallback(IDirect3DRMFrame3* iface,
1108 D3DRMFRAME3MOVECALLBACK cb, VOID *arg,
1109 DWORD flags)
1111 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1113 FIXME("(%p/%p)->(%p,%p,%u): stub\n", iface, This, cb, arg, flags);
1115 return E_NOTIMPL;
1118 static HRESULT WINAPI IDirect3DRMFrame3Impl_AddTransform(IDirect3DRMFrame3* iface,
1119 D3DRMCOMBINETYPE type,
1120 D3DRMMATRIX4D matrix)
1122 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1124 FIXME("(%p/%p)->(%u,%p): stub\n", iface, This, type, matrix);
1126 return E_NOTIMPL;
1129 static HRESULT WINAPI IDirect3DRMFrame3Impl_AddTranslation(IDirect3DRMFrame3* iface,
1130 D3DRMCOMBINETYPE type,
1131 D3DVALUE x, D3DVALUE y, D3DVALUE z)
1133 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1135 FIXME("(%p/%p)->(%u,%f,%f,%f): stub\n", iface, This, type, x, y, z);
1137 return E_NOTIMPL;
1140 static HRESULT WINAPI IDirect3DRMFrame3Impl_AddScale(IDirect3DRMFrame3* iface,
1141 D3DRMCOMBINETYPE type,
1142 D3DVALUE sx, D3DVALUE sy, D3DVALUE sz)
1144 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1146 FIXME("(%p/%p)->(%u,%f,%f,%f): stub\n", iface, This, type, sx, sy, sz);
1148 return E_NOTIMPL;
1151 static HRESULT WINAPI IDirect3DRMFrame3Impl_AddRotation(IDirect3DRMFrame3* iface,
1152 D3DRMCOMBINETYPE type,
1153 D3DVALUE x, D3DVALUE y, D3DVALUE z,
1154 D3DVALUE theta)
1156 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1158 FIXME("(%p/%p)->(%u,%f,%f,%f,%f): stub\n", iface, This, type, x, y, z, theta);
1160 return E_NOTIMPL;
1163 static HRESULT WINAPI IDirect3DRMFrame3Impl_AddVisual(IDirect3DRMFrame3* iface, LPUNKNOWN vis)
1165 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1167 FIXME("(%p/%p)->(%p): stub\n", iface, This, vis);
1169 return E_NOTIMPL;
1172 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetChildren(IDirect3DRMFrame3* iface,
1173 LPDIRECT3DRMFRAMEARRAY *children)
1175 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1177 FIXME("(%p/%p)->(%p): stub\n", iface, This, children);
1179 return E_NOTIMPL;
1182 static D3DCOLOR WINAPI IDirect3DRMFrame3Impl_GetColor(IDirect3DRMFrame3* iface)
1184 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1186 FIXME("(%p/%p)->(): stub\n", iface, This);
1188 return 0;
1191 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetLights(IDirect3DRMFrame3* iface,
1192 LPDIRECT3DRMLIGHTARRAY *lights)
1194 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1196 FIXME("(%p/%p)->(%p): stub\n", iface, This, lights);
1198 return E_NOTIMPL;
1201 static D3DRMMATERIALMODE WINAPI IDirect3DRMFrame3Impl_GetMaterialMode(IDirect3DRMFrame3* iface)
1203 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1205 FIXME("(%p/%p)->(): stub\n", iface, This);
1207 return D3DRMMATERIAL_FROMPARENT;
1210 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetParent(IDirect3DRMFrame3* iface,
1211 LPDIRECT3DRMFRAME3 * frame)
1213 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1215 FIXME("(%p/%p)->(%p): stub\n", iface, This, frame);
1217 return E_NOTIMPL;
1220 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetPosition(IDirect3DRMFrame3* iface,
1221 LPDIRECT3DRMFRAME3 reference,
1222 LPD3DVECTOR return_position)
1224 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1226 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, reference, return_position);
1228 return E_NOTIMPL;
1231 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetRotation(IDirect3DRMFrame3* iface,
1232 LPDIRECT3DRMFRAME3 reference,
1233 LPD3DVECTOR axis, LPD3DVALUE return_theta)
1235 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1237 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, reference, axis, return_theta);
1239 return E_NOTIMPL;
1242 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetScene(IDirect3DRMFrame3* iface,
1243 LPDIRECT3DRMFRAME3 * frame)
1245 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1247 FIXME("(%p/%p)->(%p): stub\n", iface, This, frame);
1249 return E_NOTIMPL;
1252 static D3DRMSORTMODE WINAPI IDirect3DRMFrame3Impl_GetSortMode(IDirect3DRMFrame3* iface)
1254 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1256 FIXME("(%p/%p)->(): stub\n", iface, This);
1258 return D3DRMSORT_FROMPARENT;
1261 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetTexture(IDirect3DRMFrame3* iface,
1262 LPDIRECT3DRMTEXTURE3 * tex)
1264 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1266 FIXME("(%p/%p)->(%p): stub\n", iface, This, tex);
1268 return E_NOTIMPL;
1271 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetTransform(IDirect3DRMFrame3* iface,
1272 LPDIRECT3DRMFRAME3 reference,
1273 D3DRMMATRIX4D return_matrix)
1275 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1277 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, reference, return_matrix);
1279 return E_NOTIMPL;
1282 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetVelocity(IDirect3DRMFrame3* iface,
1283 LPDIRECT3DRMFRAME3 reference,
1284 LPD3DVECTOR return_velocity,
1285 BOOL with_rotation)
1287 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1289 FIXME("(%p/%p)->(%p,%p,%d): stub\n", iface, This, reference, return_velocity, with_rotation);
1291 return E_NOTIMPL;
1294 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetOrientation(IDirect3DRMFrame3* iface,
1295 LPDIRECT3DRMFRAME3 reference,
1296 LPD3DVECTOR dir, LPD3DVECTOR up)
1298 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1300 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, reference, dir, up);
1302 return E_NOTIMPL;
1305 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetVisuals(IDirect3DRMFrame3* iface, LPDWORD num,
1306 LPUNKNOWN *visuals)
1308 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1310 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, num, visuals);
1312 return E_NOTIMPL;
1315 static HRESULT WINAPI IDirect3DRMFrame3Impl_InverseTransform(IDirect3DRMFrame3* iface,
1316 D3DVECTOR *d, D3DVECTOR *s)
1318 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1320 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, d, s);
1322 return E_NOTIMPL;
1325 static HRESULT WINAPI IDirect3DRMFrame3Impl_Load(IDirect3DRMFrame3* iface, LPVOID filename,
1326 LPVOID name, D3DRMLOADOPTIONS loadflags,
1327 D3DRMLOADTEXTURE3CALLBACK cb, LPVOID lpArg)
1329 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1331 FIXME("(%p/%p)->(%p,%p,%u,%p,%p): stub\n", iface, This, filename, name, loadflags, cb, lpArg);
1333 return E_NOTIMPL;
1336 static HRESULT WINAPI IDirect3DRMFrame3Impl_LookAt(IDirect3DRMFrame3* iface,
1337 LPDIRECT3DRMFRAME3 target,
1338 LPDIRECT3DRMFRAME3 reference,
1339 D3DRMFRAMECONSTRAINT constraint)
1341 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1343 FIXME("(%p/%p)->(%p,%p,%u): stub\n", iface, This, target, reference, constraint);
1345 return E_NOTIMPL;
1348 static HRESULT WINAPI IDirect3DRMFrame3Impl_Move(IDirect3DRMFrame3* iface, D3DVALUE delta)
1350 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1352 FIXME("(%p/%p)->(%f): stub\n", iface, This, delta);
1354 return E_NOTIMPL;
1357 static HRESULT WINAPI IDirect3DRMFrame3Impl_DeleteChild(IDirect3DRMFrame3* iface,
1358 LPDIRECT3DRMFRAME3 frame)
1360 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1362 FIXME("(%p/%p)->(%p): stub\n", iface, This, frame);
1364 return E_NOTIMPL;
1367 static HRESULT WINAPI IDirect3DRMFrame3Impl_DeleteLight(IDirect3DRMFrame3* iface,
1368 LPDIRECT3DRMLIGHT light)
1370 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1372 FIXME("(%p/%p)->(%p): stub\n", iface, This, light);
1374 return E_NOTIMPL;
1377 static HRESULT WINAPI IDirect3DRMFrame3Impl_DeleteMoveCallback(IDirect3DRMFrame3* iface,
1378 D3DRMFRAME3MOVECALLBACK cb,
1379 VOID *arg)
1381 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1383 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, cb, arg);
1385 return E_NOTIMPL;
1388 static HRESULT WINAPI IDirect3DRMFrame3Impl_DeleteVisual(IDirect3DRMFrame3* iface, LPUNKNOWN vis)
1390 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1392 FIXME("(%p/%p)->(%p): stub\n", iface, This, vis);
1394 return E_NOTIMPL;
1397 static D3DCOLOR WINAPI IDirect3DRMFrame3Impl_GetSceneBackground(IDirect3DRMFrame3* iface)
1399 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1401 FIXME("(%p/%p)->(): stub\n", iface, This);
1403 return 0;
1406 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetSceneBackgroundDepth(IDirect3DRMFrame3* iface,
1407 LPDIRECTDRAWSURFACE * surface)
1409 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1411 FIXME("(%p/%p)->(%p): stub\n", iface, This, surface);
1413 return E_NOTIMPL;
1416 static D3DCOLOR WINAPI IDirect3DRMFrame3Impl_GetSceneFogColor(IDirect3DRMFrame3* iface)
1418 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1420 FIXME("(%p/%p)->(): stub\n", iface, This);
1422 return 0;
1425 static BOOL WINAPI IDirect3DRMFrame3Impl_GetSceneFogEnable(IDirect3DRMFrame3* iface)
1427 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1429 FIXME("(%p/%p)->(): stub\n", iface, This);
1431 return FALSE;
1434 static D3DRMFOGMODE WINAPI IDirect3DRMFrame3Impl_GetSceneFogMode(IDirect3DRMFrame3* iface)
1436 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1438 FIXME("(%p/%p)->(): stub\n", iface, This);
1440 return D3DRMFOG_LINEAR;
1443 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetSceneFogParams(IDirect3DRMFrame3* iface,
1444 D3DVALUE *return_start,
1445 D3DVALUE *return_end,
1446 D3DVALUE *return_density)
1448 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1450 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, return_start, return_end, return_density);
1452 return E_NOTIMPL;
1455 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetSceneBackground(IDirect3DRMFrame3* iface,
1456 D3DCOLOR color)
1458 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1460 FIXME("(%p/%p)->(%u): stub\n", iface, This, color);
1462 return E_NOTIMPL;
1465 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetSceneBackgroundRGB(IDirect3DRMFrame3* iface,
1466 D3DVALUE red, D3DVALUE green,
1467 D3DVALUE blue)
1469 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1471 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface, This, red, green, blue);
1473 return E_NOTIMPL;
1476 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetSceneBackgroundDepth(IDirect3DRMFrame3* iface,
1477 LPDIRECTDRAWSURFACE surface)
1479 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1481 FIXME("(%p/%p)->(%p): stub\n", iface, This, surface);
1483 return E_NOTIMPL;
1486 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetSceneBackgroundImage(IDirect3DRMFrame3* iface,
1487 LPDIRECT3DRMTEXTURE3 texture)
1489 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1491 FIXME("(%p/%p)->(%p): stub\n", iface, This, texture);
1493 return E_NOTIMPL;
1496 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetSceneFogEnable(IDirect3DRMFrame3* iface, BOOL enable)
1498 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1500 FIXME("(%p/%p)->(%d): stub\n", iface, This, enable);
1502 return E_NOTIMPL;
1505 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetSceneFogColor(IDirect3DRMFrame3* iface,
1506 D3DCOLOR color)
1508 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1510 FIXME("(%p/%p)->(%u): stub\n", iface, This, color);
1512 return E_NOTIMPL;
1515 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetSceneFogMode(IDirect3DRMFrame3* iface,
1516 D3DRMFOGMODE mode)
1518 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1520 FIXME("(%p/%p)->(%u): stub\n", iface, This, mode);
1522 return E_NOTIMPL;
1525 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetSceneFogParams(IDirect3DRMFrame3* iface,
1526 D3DVALUE start, D3DVALUE end,
1527 D3DVALUE density)
1529 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1531 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface, This, start, end, density);
1533 return E_NOTIMPL;
1536 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetColor(IDirect3DRMFrame3* iface, D3DCOLOR color)
1538 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1540 FIXME("(%p/%p)->(%u): stub\n", iface, This, color);
1542 return E_NOTIMPL;
1545 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetColorRGB(IDirect3DRMFrame3* iface, D3DVALUE red,
1546 D3DVALUE green, D3DVALUE blue)
1548 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1550 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface, This, red, green, blue);
1552 return E_NOTIMPL;
1555 static D3DRMZBUFFERMODE WINAPI IDirect3DRMFrame3Impl_GetZbufferMode(IDirect3DRMFrame3* iface)
1557 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1559 FIXME("(%p/%p)->(): stub\n", iface, This);
1561 return D3DRMZBUFFER_FROMPARENT;
1564 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetMaterialMode(IDirect3DRMFrame3* iface,
1565 D3DRMMATERIALMODE mode)
1567 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1569 FIXME("(%p/%p)->(%u): stub\n", iface, This, mode);
1571 return E_NOTIMPL;
1574 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetOrientation(IDirect3DRMFrame3* iface,
1575 LPDIRECT3DRMFRAME3 reference,
1576 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
1577 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz )
1579 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1581 FIXME("(%p/%p)->(%p,%f,%f,%f,%f,%f,%f): stub\n", iface, This, reference,
1582 dx, dy, dz, ux, uy, uz);
1584 return E_NOTIMPL;
1587 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetPosition(IDirect3DRMFrame3* iface,
1588 LPDIRECT3DRMFRAME3 reference,
1589 D3DVALUE x, D3DVALUE y, D3DVALUE z)
1591 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1593 FIXME("(%p/%p)->(%p,%f,%f,%f): stub\n", iface, This, reference, x, y, z);
1595 return E_NOTIMPL;
1598 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetRotation(IDirect3DRMFrame3* iface,
1599 LPDIRECT3DRMFRAME3 reference,
1600 D3DVALUE x, D3DVALUE y, D3DVALUE z,
1601 D3DVALUE theta)
1603 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1605 FIXME("(%p/%p)->(%p,%f,%f,%f,%f): stub\n", iface, This, reference, x, y, z, theta);
1607 return E_NOTIMPL;
1610 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetSortMode(IDirect3DRMFrame3* iface,
1611 D3DRMSORTMODE mode)
1613 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1615 FIXME("(%p/%p)->(%u): stub\n", iface, This, mode);
1617 return E_NOTIMPL;
1620 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetTexture(IDirect3DRMFrame3* iface,
1621 LPDIRECT3DRMTEXTURE3 texture)
1623 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1625 FIXME("(%p/%p)->(%p): stub\n", iface, This, texture);
1627 return E_NOTIMPL;
1630 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetVelocity(IDirect3DRMFrame3* iface,
1631 LPDIRECT3DRMFRAME3 reference,
1632 D3DVALUE x, D3DVALUE y, D3DVALUE z,
1633 BOOL with_rotation)
1635 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1637 FIXME("(%p/%p)->(%p,%f,%f,%f,%d): stub\n", iface, This, reference, x, y, z, with_rotation);
1639 return E_NOTIMPL;
1642 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetZbufferMode(IDirect3DRMFrame3* iface,
1643 D3DRMZBUFFERMODE mode)
1645 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1647 FIXME("(%p/%p)->(%u): stub\n", iface, This, mode);
1649 return E_NOTIMPL;
1652 static HRESULT WINAPI IDirect3DRMFrame3Impl_Transform(IDirect3DRMFrame3* iface, D3DVECTOR *d,
1653 D3DVECTOR *s)
1655 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1657 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, d, s);
1659 return E_NOTIMPL;
1662 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetBox(IDirect3DRMFrame3* iface, LPD3DRMBOX box)
1664 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1666 FIXME("(%p/%p)->(%p): stub\n", iface, This, box);
1668 return E_NOTIMPL;
1671 static BOOL WINAPI IDirect3DRMFrame3Impl_GetBoxEnable(IDirect3DRMFrame3* iface)
1673 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1675 FIXME("(%p/%p)->(): stub\n", iface, This);
1677 return E_NOTIMPL;
1680 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetAxes(IDirect3DRMFrame3* iface,
1681 LPD3DVECTOR dir, LPD3DVECTOR up)
1683 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1685 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, dir, up);
1687 return E_NOTIMPL;
1690 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetMaterial(IDirect3DRMFrame3* iface,
1691 LPDIRECT3DRMMATERIAL2 *material)
1693 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1695 FIXME("(%p/%p)->(%p): stub\n", iface, This, material);
1697 return E_NOTIMPL;
1700 static BOOL WINAPI IDirect3DRMFrame3Impl_GetInheritAxes(IDirect3DRMFrame3* iface)
1702 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1704 FIXME("(%p/%p)->(): stub\n", iface, This);
1706 return E_NOTIMPL;
1709 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetHierarchyBox(IDirect3DRMFrame3* iface,
1710 LPD3DRMBOX box)
1712 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1714 FIXME("(%p/%p)->(%p): stub\n", iface, This, box);
1716 return E_NOTIMPL;
1719 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetBox(IDirect3DRMFrame3* iface, LPD3DRMBOX box)
1721 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1723 FIXME("(%p/%p)->(%p): stub\n", iface, This, box);
1725 return E_NOTIMPL;
1728 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetBoxEnable(IDirect3DRMFrame3* iface, BOOL enable)
1730 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1732 FIXME("(%p/%p)->(%u): stub\n", iface, This, enable);
1734 return E_NOTIMPL;
1737 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetAxes(IDirect3DRMFrame3* iface,
1738 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
1739 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz)
1741 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1743 FIXME("(%p/%p)->(%f,%f,%f,%f,%f,%f): stub\n", iface, This, dx, dy, dz, ux, uy, uz);
1745 return E_NOTIMPL;
1748 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetInheritAxes(IDirect3DRMFrame3* iface,
1749 BOOL inherit_from_parent)
1751 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1753 FIXME("(%p/%p)->(%u): stub\n", iface, This, inherit_from_parent);
1755 return E_NOTIMPL;
1758 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetMaterial(IDirect3DRMFrame3* iface,
1759 LPDIRECT3DRMMATERIAL2 material)
1761 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1763 FIXME("(%p/%p)->(%p): stub\n", iface, This, material);
1765 return E_NOTIMPL;
1768 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetQuaternion(IDirect3DRMFrame3* iface,
1769 LPDIRECT3DRMFRAME3 reference,
1770 D3DRMQUATERNION *q)
1772 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1774 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, reference, q);
1776 return E_NOTIMPL;
1779 static HRESULT WINAPI IDirect3DRMFrame3Impl_RayPick(IDirect3DRMFrame3* iface,
1780 LPDIRECT3DRMFRAME3 reference, LPD3DRMRAY ray,
1781 DWORD flags,
1782 LPDIRECT3DRMPICKED2ARRAY *return_visuals)
1784 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1786 FIXME("(%p/%p)->(%p,%p,%u,%p): stub\n", iface, This, reference, ray, flags, return_visuals);
1788 return E_NOTIMPL;
1791 static HRESULT WINAPI IDirect3DRMFrame3Impl_Save(IDirect3DRMFrame3* iface, LPCSTR filename,
1792 D3DRMXOFFORMAT d3dFormat,
1793 D3DRMSAVEOPTIONS d3dSaveFlags)
1795 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1797 FIXME("(%p/%p)->(%p,%u,%u): stub\n", iface, This, filename, d3dFormat, d3dSaveFlags);
1799 return E_NOTIMPL;
1802 static HRESULT WINAPI IDirect3DRMFrame3Impl_TransformVectors(IDirect3DRMFrame3* iface,
1803 LPDIRECT3DRMFRAME3 reference,
1804 DWORD num, LPD3DVECTOR dst,
1805 LPD3DVECTOR src)
1807 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1809 FIXME("(%p/%p)->(%p,%u,%p,%p): stub\n", iface, This, reference, num, dst, src);
1811 return E_NOTIMPL;
1814 static HRESULT WINAPI IDirect3DRMFrame3Impl_InverseTransformVectors(IDirect3DRMFrame3* iface,
1815 LPDIRECT3DRMFRAME3 reference,
1816 DWORD num, LPD3DVECTOR dst,
1817 LPD3DVECTOR src)
1819 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1821 FIXME("(%p/%p)->(%p,%u,%p,%p): stub\n", iface, This, reference, num, dst, src);
1823 return E_NOTIMPL;
1826 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetTraversalOptions(IDirect3DRMFrame3* iface,
1827 DWORD flags)
1829 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1831 FIXME("(%p/%p)->(%u): stub\n", iface, This, flags);
1833 return E_NOTIMPL;
1836 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetTraversalOptions(IDirect3DRMFrame3* iface,
1837 LPDWORD flags)
1839 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1841 FIXME("(%p/%p)->(%p): stub\n", iface, This, flags);
1843 return E_NOTIMPL;
1846 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetSceneFogMethod(IDirect3DRMFrame3* iface,
1847 DWORD flags)
1849 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1851 FIXME("(%p/%p)->(%u): stub\n", iface, This, flags);
1853 return E_NOTIMPL;
1856 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetSceneFogMethod(IDirect3DRMFrame3* iface,
1857 LPDWORD flags)
1859 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1861 FIXME("(%p/%p)->(%p): stub\n", iface, This, flags);
1863 return E_NOTIMPL;
1866 static HRESULT WINAPI IDirect3DRMFrame3Impl_SetMaterialOverride(IDirect3DRMFrame3* iface,
1867 LPD3DRMMATERIALOVERRIDE override)
1869 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1871 FIXME("(%p/%p)->(%p): stub\n", iface, This, override);
1873 return E_NOTIMPL;
1876 static HRESULT WINAPI IDirect3DRMFrame3Impl_GetMaterialOverride(IDirect3DRMFrame3* iface,
1877 LPD3DRMMATERIALOVERRIDE override)
1879 IDirect3DRMFrameImpl *This = impl_from_IDirect3DRMFrame3(iface);
1881 FIXME("(%p/%p)->(%p): stub\n", iface, This, override);
1883 return E_NOTIMPL;
1886 static const struct IDirect3DRMFrame3Vtbl Direct3DRMFrame3_Vtbl =
1888 /*** IUnknown methods ***/
1889 IDirect3DRMFrame3Impl_QueryInterface,
1890 IDirect3DRMFrame3Impl_AddRef,
1891 IDirect3DRMFrame3Impl_Release,
1892 /*** IDirect3DRMObject methods ***/
1893 IDirect3DRMFrame3Impl_Clone,
1894 IDirect3DRMFrame3Impl_AddDestroyCallback,
1895 IDirect3DRMFrame3Impl_DeleteDestroyCallback,
1896 IDirect3DRMFrame3Impl_SetAppData,
1897 IDirect3DRMFrame3Impl_GetAppData,
1898 IDirect3DRMFrame3Impl_SetName,
1899 IDirect3DRMFrame3Impl_GetName,
1900 IDirect3DRMFrame3Impl_GetClassName,
1901 /*** IDirect3DRMFrame3 methods ***/
1902 IDirect3DRMFrame3Impl_AddChild,
1903 IDirect3DRMFrame3Impl_AddLight,
1904 IDirect3DRMFrame3Impl_AddMoveCallback,
1905 IDirect3DRMFrame3Impl_AddTransform,
1906 IDirect3DRMFrame3Impl_AddTranslation,
1907 IDirect3DRMFrame3Impl_AddScale,
1908 IDirect3DRMFrame3Impl_AddRotation,
1909 IDirect3DRMFrame3Impl_AddVisual,
1910 IDirect3DRMFrame3Impl_GetChildren,
1911 IDirect3DRMFrame3Impl_GetColor,
1912 IDirect3DRMFrame3Impl_GetLights,
1913 IDirect3DRMFrame3Impl_GetMaterialMode,
1914 IDirect3DRMFrame3Impl_GetParent,
1915 IDirect3DRMFrame3Impl_GetPosition,
1916 IDirect3DRMFrame3Impl_GetRotation,
1917 IDirect3DRMFrame3Impl_GetScene,
1918 IDirect3DRMFrame3Impl_GetSortMode,
1919 IDirect3DRMFrame3Impl_GetTexture,
1920 IDirect3DRMFrame3Impl_GetTransform,
1921 IDirect3DRMFrame3Impl_GetVelocity,
1922 IDirect3DRMFrame3Impl_GetOrientation,
1923 IDirect3DRMFrame3Impl_GetVisuals,
1924 IDirect3DRMFrame3Impl_InverseTransform,
1925 IDirect3DRMFrame3Impl_Load,
1926 IDirect3DRMFrame3Impl_LookAt,
1927 IDirect3DRMFrame3Impl_Move,
1928 IDirect3DRMFrame3Impl_DeleteChild,
1929 IDirect3DRMFrame3Impl_DeleteLight,
1930 IDirect3DRMFrame3Impl_DeleteMoveCallback,
1931 IDirect3DRMFrame3Impl_DeleteVisual,
1932 IDirect3DRMFrame3Impl_GetSceneBackground,
1933 IDirect3DRMFrame3Impl_GetSceneBackgroundDepth,
1934 IDirect3DRMFrame3Impl_GetSceneFogColor,
1935 IDirect3DRMFrame3Impl_GetSceneFogEnable,
1936 IDirect3DRMFrame3Impl_GetSceneFogMode,
1937 IDirect3DRMFrame3Impl_GetSceneFogParams,
1938 IDirect3DRMFrame3Impl_SetSceneBackground,
1939 IDirect3DRMFrame3Impl_SetSceneBackgroundRGB,
1940 IDirect3DRMFrame3Impl_SetSceneBackgroundDepth,
1941 IDirect3DRMFrame3Impl_SetSceneBackgroundImage,
1942 IDirect3DRMFrame3Impl_SetSceneFogEnable,
1943 IDirect3DRMFrame3Impl_SetSceneFogColor,
1944 IDirect3DRMFrame3Impl_SetSceneFogMode,
1945 IDirect3DRMFrame3Impl_SetSceneFogParams,
1946 IDirect3DRMFrame3Impl_SetColor,
1947 IDirect3DRMFrame3Impl_SetColorRGB,
1948 IDirect3DRMFrame3Impl_GetZbufferMode,
1949 IDirect3DRMFrame3Impl_SetMaterialMode,
1950 IDirect3DRMFrame3Impl_SetOrientation,
1951 IDirect3DRMFrame3Impl_SetPosition,
1952 IDirect3DRMFrame3Impl_SetRotation,
1953 IDirect3DRMFrame3Impl_SetSortMode,
1954 IDirect3DRMFrame3Impl_SetTexture,
1955 IDirect3DRMFrame3Impl_SetVelocity,
1956 IDirect3DRMFrame3Impl_SetZbufferMode,
1957 IDirect3DRMFrame3Impl_Transform,
1958 IDirect3DRMFrame3Impl_GetBox,
1959 IDirect3DRMFrame3Impl_GetBoxEnable,
1960 IDirect3DRMFrame3Impl_GetAxes,
1961 IDirect3DRMFrame3Impl_GetMaterial,
1962 IDirect3DRMFrame3Impl_GetInheritAxes,
1963 IDirect3DRMFrame3Impl_GetHierarchyBox,
1964 IDirect3DRMFrame3Impl_SetBox,
1965 IDirect3DRMFrame3Impl_SetBoxEnable,
1966 IDirect3DRMFrame3Impl_SetAxes,
1967 IDirect3DRMFrame3Impl_SetInheritAxes,
1968 IDirect3DRMFrame3Impl_SetMaterial,
1969 IDirect3DRMFrame3Impl_SetQuaternion,
1970 IDirect3DRMFrame3Impl_RayPick,
1971 IDirect3DRMFrame3Impl_Save,
1972 IDirect3DRMFrame3Impl_TransformVectors,
1973 IDirect3DRMFrame3Impl_InverseTransformVectors,
1974 IDirect3DRMFrame3Impl_SetTraversalOptions,
1975 IDirect3DRMFrame3Impl_GetTraversalOptions,
1976 IDirect3DRMFrame3Impl_SetSceneFogMethod,
1977 IDirect3DRMFrame3Impl_GetSceneFogMethod,
1978 IDirect3DRMFrame3Impl_SetMaterialOverride,
1979 IDirect3DRMFrame3Impl_GetMaterialOverride
1982 static inline IDirect3DRMFrameImpl *unsafe_impl_from_IDirect3DRMFrame2(IDirect3DRMFrame2 *iface)
1984 if (!iface)
1985 return NULL;
1986 assert(iface->lpVtbl == &Direct3DRMFrame2_Vtbl);
1988 return impl_from_IDirect3DRMFrame2(iface);
1991 HRESULT Direct3DRMFrame_create(REFIID riid, IUnknown** ppObj)
1993 IDirect3DRMFrameImpl* object;
1995 TRACE("(%p)\n", ppObj);
1997 object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirect3DRMFrameImpl));
1998 if (!object)
2000 ERR("Out of memory\n");
2001 return E_OUTOFMEMORY;
2004 object->IDirect3DRMFrame2_iface.lpVtbl = &Direct3DRMFrame2_Vtbl;
2005 object->IDirect3DRMFrame3_iface.lpVtbl = &Direct3DRMFrame3_Vtbl;
2006 object->ref = 1;
2008 if (IsEqualGUID(riid, &IID_IDirect3DRMFrame3))
2009 *ppObj = (IUnknown*)&object->IDirect3DRMFrame3_iface;
2010 else
2011 *ppObj = (IUnknown*)&object->IDirect3DRMFrame2_iface;
2013 return S_OK;