2 * Implementation of IDirect3DRMFrame Interface
4 * Copyright 2011, 2012 André Hentschel
5 * Copyright 2012 Christian Costa
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
23 #include "wine/debug.h"
30 #include "d3drm_private.h"
32 WINE_DEFAULT_DEBUG_CHANNEL(d3drm
);
34 static D3DRMMATRIX4D identity
= {
35 { 1.0f
, 0.0f
, 0.0f
, 0.0f
},
36 { 0.0f
, 1.0f
, 0.0f
, 0.0f
},
37 { 0.0f
, 0.0f
, 1.0f
, 0.0f
},
38 { 0.0f
, 0.0f
, 0.0f
, 1.0f
}
41 typedef struct IDirect3DRMFrameImpl IDirect3DRMFrameImpl
;
43 struct IDirect3DRMFrameImpl
{
44 IDirect3DRMFrame2 IDirect3DRMFrame2_iface
;
45 IDirect3DRMFrame3 IDirect3DRMFrame3_iface
;
47 IDirect3DRMFrameImpl
* parent
;
49 ULONG children_capacity
;
50 IDirect3DRMFrame3
** children
;
52 ULONG visuals_capacity
;
53 IDirect3DRMVisual
** visuals
;
55 ULONG lights_capacity
;
56 IDirect3DRMLight
** lights
;
57 D3DRMMATRIX4D transform
;
61 IDirect3DRMFrameArray IDirect3DRMFrameArray_iface
;
64 LPDIRECT3DRMFRAME
* frames
;
65 } IDirect3DRMFrameArrayImpl
;
68 IDirect3DRMVisualArray IDirect3DRMVisualArray_iface
;
71 LPDIRECT3DRMVISUAL
* visuals
;
72 } IDirect3DRMVisualArrayImpl
;
75 IDirect3DRMLightArray IDirect3DRMLightArray_iface
;
78 LPDIRECT3DRMLIGHT
* lights
;
79 } IDirect3DRMLightArrayImpl
;
81 static inline IDirect3DRMFrameImpl
*impl_from_IDirect3DRMFrame2(IDirect3DRMFrame2
*iface
)
83 return CONTAINING_RECORD(iface
, IDirect3DRMFrameImpl
, IDirect3DRMFrame2_iface
);
86 static inline IDirect3DRMFrameImpl
*impl_from_IDirect3DRMFrame3(IDirect3DRMFrame3
*iface
)
88 return CONTAINING_RECORD(iface
, IDirect3DRMFrameImpl
, IDirect3DRMFrame3_iface
);
91 static inline IDirect3DRMFrameImpl
*unsafe_impl_from_IDirect3DRMFrame3(IDirect3DRMFrame3
*iface
);
93 static inline IDirect3DRMLightArrayImpl
*impl_from_IDirect3DRMLightArray(IDirect3DRMLightArray
*iface
)
95 return CONTAINING_RECORD(iface
, IDirect3DRMLightArrayImpl
, IDirect3DRMLightArray_iface
);
98 /*** IUnknown methods ***/
99 static HRESULT WINAPI
IDirect3DRMFrameArrayImpl_QueryInterface(IDirect3DRMFrameArray
* iface
,
100 REFIID riid
, void** object
)
102 IDirect3DRMFrameArrayImpl
*This
= (IDirect3DRMFrameArrayImpl
*)iface
;
104 TRACE("(%p/%p)->(%s, %p)\n", iface
, This
, debugstr_guid(riid
), object
);
108 if (IsEqualGUID(riid
, &IID_IUnknown
) ||
109 IsEqualGUID(riid
, &IID_IDirect3DRMFrameArray
))
111 *object
= &This
->IDirect3DRMFrameArray_iface
;
115 FIXME("interface %s not implemented\n", debugstr_guid(riid
));
116 return E_NOINTERFACE
;
119 IDirect3DRMFrameArray_AddRef(iface
);
123 static ULONG WINAPI
IDirect3DRMFrameArrayImpl_AddRef(IDirect3DRMFrameArray
* iface
)
125 IDirect3DRMFrameArrayImpl
*This
= (IDirect3DRMFrameArrayImpl
*)iface
;
126 ULONG ref
= InterlockedIncrement(&This
->ref
);
128 TRACE("(%p)->(): new ref = %u\n", This
, ref
);
133 static ULONG WINAPI
IDirect3DRMFrameArrayImpl_Release(IDirect3DRMFrameArray
* iface
)
135 IDirect3DRMFrameArrayImpl
*This
= (IDirect3DRMFrameArrayImpl
*)iface
;
136 ULONG ref
= InterlockedDecrement(&This
->ref
);
139 TRACE("(%p)->(): new ref = %u\n", This
, ref
);
143 for (i
= 0; i
< This
->size
; i
++)
144 IDirect3DRMFrame_Release(This
->frames
[i
]);
145 HeapFree(GetProcessHeap(), 0, This
->frames
);
146 HeapFree(GetProcessHeap(), 0, This
);
152 /*** IDirect3DRMArray methods ***/
153 static DWORD WINAPI
IDirect3DRMFrameArrayImpl_GetSize(IDirect3DRMFrameArray
* iface
)
155 IDirect3DRMFrameArrayImpl
*This
= (IDirect3DRMFrameArrayImpl
*)iface
;
157 TRACE("(%p)->() = %d\n", This
, This
->size
);
162 /*** IDirect3DRMFrameArray methods ***/
163 static HRESULT WINAPI
IDirect3DRMFrameArrayImpl_GetElement(IDirect3DRMFrameArray
* iface
, DWORD index
, LPDIRECT3DRMFRAME
* frame
)
165 IDirect3DRMFrameArrayImpl
*This
= (IDirect3DRMFrameArrayImpl
*)iface
;
167 TRACE("(%p)->(%u, %p)\n", This
, index
, frame
);
170 return D3DRMERR_BADVALUE
;
174 if (index
>= This
->size
)
175 return D3DRMERR_BADVALUE
;
177 IDirect3DRMFrame_AddRef(This
->frames
[index
]);
178 *frame
= This
->frames
[index
];
183 static const struct IDirect3DRMFrameArrayVtbl Direct3DRMFrameArray_Vtbl
=
185 /*** IUnknown methods ***/
186 IDirect3DRMFrameArrayImpl_QueryInterface
,
187 IDirect3DRMFrameArrayImpl_AddRef
,
188 IDirect3DRMFrameArrayImpl_Release
,
189 /*** IDirect3DRMArray methods ***/
190 IDirect3DRMFrameArrayImpl_GetSize
,
191 /*** IDirect3DRMFrameArray methods ***/
192 IDirect3DRMFrameArrayImpl_GetElement
195 static HRESULT
Direct3DRMFrameArray_create(IDirect3DRMFrameArray
** obj
)
197 IDirect3DRMFrameArrayImpl
* object
;
199 TRACE("(%p)\n", obj
);
203 object
= HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, sizeof(IDirect3DRMFrameArrayImpl
));
206 ERR("Out of memory\n");
207 return E_OUTOFMEMORY
;
210 object
->IDirect3DRMFrameArray_iface
.lpVtbl
= &Direct3DRMFrameArray_Vtbl
;
213 *obj
= &object
->IDirect3DRMFrameArray_iface
;
218 /*** IUnknown methods ***/
219 static HRESULT WINAPI
IDirect3DRMVisualArrayImpl_QueryInterface(IDirect3DRMVisualArray
* iface
,
220 REFIID riid
, void** ret_iface
)
222 TRACE("(%p)->(%s, %p)\n", iface
, debugstr_guid(riid
), ret_iface
);
224 if (IsEqualGUID(riid
, &IID_IUnknown
) ||
225 IsEqualGUID(riid
, &IID_IDirect3DRMFrameArray
))
228 IDirect3DRMVisualArray_AddRef(iface
);
234 WARN("Interface %s not implemented\n", debugstr_guid(riid
));
236 return E_NOINTERFACE
;
239 static ULONG WINAPI
IDirect3DRMVisualArrayImpl_AddRef(IDirect3DRMVisualArray
* iface
)
241 IDirect3DRMVisualArrayImpl
*This
= (IDirect3DRMVisualArrayImpl
*)iface
;
242 ULONG ref
= InterlockedIncrement(&This
->ref
);
244 TRACE("(%p)->(): new ref = %u\n", iface
, ref
);
249 static ULONG WINAPI
IDirect3DRMVisualArrayImpl_Release(IDirect3DRMVisualArray
* iface
)
251 IDirect3DRMVisualArrayImpl
*This
= (IDirect3DRMVisualArrayImpl
*)iface
;
252 ULONG ref
= InterlockedDecrement(&This
->ref
);
255 TRACE("(%p)->(): new ref = %u\n", iface
, ref
);
259 for (i
= 0; i
< This
->size
; i
++)
260 IDirect3DRMVisual_Release(This
->visuals
[i
]);
261 HeapFree(GetProcessHeap(), 0, This
->visuals
);
262 HeapFree(GetProcessHeap(), 0, This
);
268 /*** IDirect3DRMArray methods ***/
269 static DWORD WINAPI
IDirect3DRMVisualArrayImpl_GetSize(IDirect3DRMVisualArray
* iface
)
271 IDirect3DRMVisualArrayImpl
*This
= (IDirect3DRMVisualArrayImpl
*)iface
;
273 TRACE("(%p)->() = %d\n", iface
, This
->size
);
278 /*** IDirect3DRMVisualArray methods ***/
279 static HRESULT WINAPI
IDirect3DRMVisualArrayImpl_GetElement(IDirect3DRMVisualArray
* iface
, DWORD index
, LPDIRECT3DRMVISUAL
* visual
)
281 IDirect3DRMVisualArrayImpl
*This
= (IDirect3DRMVisualArrayImpl
*)iface
;
283 TRACE("(%p)->(%u, %p)\n", iface
, index
, visual
);
286 return D3DRMERR_BADVALUE
;
290 if (index
>= This
->size
)
291 return D3DRMERR_BADVALUE
;
293 IDirect3DRMVisual_AddRef(This
->visuals
[index
]);
294 *visual
= This
->visuals
[index
];
299 static const struct IDirect3DRMVisualArrayVtbl Direct3DRMVisualArray_Vtbl
=
301 /*** IUnknown methods ***/
302 IDirect3DRMVisualArrayImpl_QueryInterface
,
303 IDirect3DRMVisualArrayImpl_AddRef
,
304 IDirect3DRMVisualArrayImpl_Release
,
305 /*** IDirect3DRMArray methods ***/
306 IDirect3DRMVisualArrayImpl_GetSize
,
307 /*** IDirect3DRMVisualArray methods ***/
308 IDirect3DRMVisualArrayImpl_GetElement
311 static HRESULT
Direct3DRMVisualArray_create(IDirect3DRMVisualArray
** ret_iface
)
313 IDirect3DRMVisualArrayImpl
* object
;
315 TRACE("(%p)\n", ret_iface
);
319 object
= HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, sizeof(IDirect3DRMVisualArrayImpl
));
322 ERR("Out of memory\n");
323 return E_OUTOFMEMORY
;
326 object
->IDirect3DRMVisualArray_iface
.lpVtbl
= &Direct3DRMVisualArray_Vtbl
;
329 *ret_iface
= &object
->IDirect3DRMVisualArray_iface
;
334 /*** IUnknown methods ***/
335 static HRESULT WINAPI
IDirect3DRMLightArrayImpl_QueryInterface(IDirect3DRMLightArray
* iface
,
336 REFIID riid
, void** object
)
338 IDirect3DRMLightArrayImpl
*This
= impl_from_IDirect3DRMLightArray(iface
);
340 TRACE("(%p/%p)->(%s, %p)\n", iface
, This
, debugstr_guid(riid
), object
);
344 if (IsEqualGUID(riid
, &IID_IUnknown
) ||
345 IsEqualGUID(riid
, &IID_IDirect3DRMLightArray
))
347 *object
= &This
->IDirect3DRMLightArray_iface
;
351 FIXME("interface %s not implemented\n", debugstr_guid(riid
));
352 return E_NOINTERFACE
;
355 IDirect3DRMLightArray_AddRef(iface
);
359 static ULONG WINAPI
IDirect3DRMLightArrayImpl_AddRef(IDirect3DRMLightArray
* iface
)
361 IDirect3DRMLightArrayImpl
*This
= impl_from_IDirect3DRMLightArray(iface
);
362 ULONG ref
= InterlockedIncrement(&This
->ref
);
364 TRACE("(%p)->(): new ref = %u\n", This
, ref
);
369 static ULONG WINAPI
IDirect3DRMLightArrayImpl_Release(IDirect3DRMLightArray
* iface
)
371 IDirect3DRMLightArrayImpl
*This
= impl_from_IDirect3DRMLightArray(iface
);
372 ULONG ref
= InterlockedDecrement(&This
->ref
);
375 TRACE("(%p)->(): new ref = %u\n", This
, ref
);
379 for (i
= 0; i
< This
->size
; i
++)
380 IDirect3DRMLight_Release(This
->lights
[i
]);
381 HeapFree(GetProcessHeap(), 0, This
->lights
);
382 HeapFree(GetProcessHeap(), 0, This
);
388 /*** IDirect3DRMArray methods ***/
389 static DWORD WINAPI
IDirect3DRMLightArrayImpl_GetSize(IDirect3DRMLightArray
* iface
)
391 IDirect3DRMLightArrayImpl
*This
= impl_from_IDirect3DRMLightArray(iface
);
393 TRACE("(%p)->() = %d\n", This
, This
->size
);
398 /*** IDirect3DRMLightArray methods ***/
399 static HRESULT WINAPI
IDirect3DRMLightArrayImpl_GetElement(IDirect3DRMLightArray
* iface
, DWORD index
, LPDIRECT3DRMLIGHT
* light
)
401 IDirect3DRMLightArrayImpl
*This
= impl_from_IDirect3DRMLightArray(iface
);
403 TRACE("(%p)->(%u, %p)\n", This
, index
, light
);
406 return D3DRMERR_BADVALUE
;
410 if (index
>= This
->size
)
411 return D3DRMERR_BADVALUE
;
413 IDirect3DRMLight_AddRef(This
->lights
[index
]);
414 *light
= This
->lights
[index
];
419 static const struct IDirect3DRMLightArrayVtbl Direct3DRMLightArray_Vtbl
=
421 /*** IUnknown methods ***/
422 IDirect3DRMLightArrayImpl_QueryInterface
,
423 IDirect3DRMLightArrayImpl_AddRef
,
424 IDirect3DRMLightArrayImpl_Release
,
425 /*** IDirect3DRMArray methods ***/
426 IDirect3DRMLightArrayImpl_GetSize
,
427 /*** IDirect3DRMLightArray methods ***/
428 IDirect3DRMLightArrayImpl_GetElement
431 static HRESULT
Direct3DRMLightArray_create(IDirect3DRMLightArray
** obj
)
433 IDirect3DRMLightArrayImpl
* object
;
435 TRACE("(%p)\n", obj
);
439 object
= HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, sizeof(IDirect3DRMLightArrayImpl
));
442 ERR("Out of memory\n");
443 return E_OUTOFMEMORY
;
446 object
->IDirect3DRMLightArray_iface
.lpVtbl
= &Direct3DRMLightArray_Vtbl
;
449 *obj
= &object
->IDirect3DRMLightArray_iface
;
454 /*** IUnknown methods ***/
455 static HRESULT WINAPI
IDirect3DRMFrame2Impl_QueryInterface(IDirect3DRMFrame2
* iface
,
456 REFIID riid
, void** object
)
458 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
460 TRACE("(%p/%p)->(%s, %p)\n", iface
, This
, debugstr_guid(riid
), object
);
464 if(IsEqualGUID(riid
, &IID_IUnknown
) ||
465 IsEqualGUID(riid
, &IID_IDirect3DRMFrame
) ||
466 IsEqualGUID(riid
, &IID_IDirect3DRMFrame2
))
468 *object
= &This
->IDirect3DRMFrame2_iface
;
470 else if(IsEqualGUID(riid
, &IID_IDirect3DRMFrame3
))
472 *object
= &This
->IDirect3DRMFrame3_iface
;
476 FIXME("interface %s not implemented\n", debugstr_guid(riid
));
477 return E_NOINTERFACE
;
480 IDirect3DRMFrame2_AddRef(iface
);
484 static ULONG WINAPI
IDirect3DRMFrame2Impl_AddRef(IDirect3DRMFrame2
* iface
)
486 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
487 ULONG ref
= InterlockedIncrement(&This
->ref
);
489 TRACE("(%p)->(): new ref = %d\n", This
, ref
);
494 static ULONG WINAPI
IDirect3DRMFrame2Impl_Release(IDirect3DRMFrame2
* iface
)
496 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
497 ULONG ref
= InterlockedDecrement(&This
->ref
);
500 TRACE("(%p)->(): new ref = %d\n", This
, ref
);
504 for (i
= 0; i
< This
->nb_children
; i
++)
505 IDirect3DRMFrame3_Release(This
->children
[i
]);
506 HeapFree(GetProcessHeap(), 0, This
->children
);
507 for (i
= 0; i
< This
->nb_visuals
; i
++)
508 IDirect3DRMVisual_Release(This
->visuals
[i
]);
509 HeapFree(GetProcessHeap(), 0, This
->visuals
);
510 for (i
= 0; i
< This
->nb_lights
; i
++)
511 IDirect3DRMLight_Release(This
->lights
[i
]);
512 HeapFree(GetProcessHeap(), 0, This
->lights
);
513 HeapFree(GetProcessHeap(), 0, This
);
519 /*** IDirect3DRMObject methods ***/
520 static HRESULT WINAPI
IDirect3DRMFrame2Impl_Clone(IDirect3DRMFrame2
* iface
,
521 LPUNKNOWN unkwn
, REFIID riid
,
524 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
526 FIXME("(%p/%p)->(%p, %s, %p): stub\n", iface
, This
, unkwn
, debugstr_guid(riid
), object
);
531 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddDestroyCallback(IDirect3DRMFrame2
* iface
,
532 D3DRMOBJECTCALLBACK cb
,
535 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
537 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
542 static HRESULT WINAPI
IDirect3DRMFrame2Impl_DeleteDestroyCallback(IDirect3DRMFrame2
* iface
,
543 D3DRMOBJECTCALLBACK cb
,
546 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
548 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
553 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetAppData(IDirect3DRMFrame2
* iface
,
556 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
558 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, data
);
563 static DWORD WINAPI
IDirect3DRMFrame2Impl_GetAppData(IDirect3DRMFrame2
* iface
)
565 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
567 FIXME("(%p/%p)->(): stub\n", iface
, This
);
572 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetName(IDirect3DRMFrame2
* iface
, LPCSTR name
)
574 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
576 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, name
);
581 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetName(IDirect3DRMFrame2
* iface
,
582 LPDWORD size
, LPSTR name
)
584 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
586 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, size
, name
);
591 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetClassName(IDirect3DRMFrame2
* iface
,
592 LPDWORD size
, LPSTR name
)
594 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
596 TRACE("(%p/%p)->(%p, %p)\n", iface
, This
, size
, name
);
598 return IDirect3DRMFrame3_GetClassName(&This
->IDirect3DRMFrame3_iface
, size
, name
);
601 /*** IDirect3DRMFrame methods ***/
602 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddChild(IDirect3DRMFrame2
* iface
,
603 LPDIRECT3DRMFRAME child
)
605 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
606 IDirect3DRMFrame3
*frame
;
609 TRACE("(%p/%p)->(%p)\n", iface
, This
, child
);
612 return D3DRMERR_BADOBJECT
;
613 hr
= IDirect3DRMFrame_QueryInterface(child
, &IID_IDirect3DRMFrame3
, (void**)&frame
);
615 return D3DRMERR_BADOBJECT
;
616 IDirect3DRMFrame_Release(child
);
618 return IDirect3DRMFrame3_AddChild(&This
->IDirect3DRMFrame3_iface
, frame
);
621 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddLight(IDirect3DRMFrame2
* iface
,
622 LPDIRECT3DRMLIGHT light
)
624 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
626 TRACE("(%p/%p)->(%p)\n", iface
, This
, light
);
628 return IDirect3DRMFrame3_AddLight(&This
->IDirect3DRMFrame3_iface
, light
);
631 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddMoveCallback(IDirect3DRMFrame2
* iface
,
632 D3DRMFRAMEMOVECALLBACK cb
, VOID
*arg
)
634 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
636 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, cb
, arg
);
641 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddTransform(IDirect3DRMFrame2
* iface
,
642 D3DRMCOMBINETYPE type
,
643 D3DRMMATRIX4D matrix
)
645 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
647 TRACE("(%p/%p)->(%u,%p)\n", iface
, This
, type
, matrix
);
649 return IDirect3DRMFrame3_AddTransform(&This
->IDirect3DRMFrame3_iface
, type
, matrix
);
652 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddTranslation(IDirect3DRMFrame2
* iface
,
653 D3DRMCOMBINETYPE type
,
654 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
)
656 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
658 FIXME("(%p/%p)->(%u,%f,%f,%f): stub\n", iface
, This
, type
, x
, y
, z
);
663 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddScale(IDirect3DRMFrame2
* iface
,
664 D3DRMCOMBINETYPE type
,
665 D3DVALUE sx
, D3DVALUE sy
, D3DVALUE sz
)
667 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
669 FIXME("(%p/%p)->(%u,%f,%f,%f): stub\n", iface
, This
, type
, sx
, sy
, sz
);
674 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddRotation(IDirect3DRMFrame2
* iface
,
675 D3DRMCOMBINETYPE type
,
676 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
,
679 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
681 FIXME("(%p/%p)->(%u,%f,%f,%f,%f): stub\n", iface
, This
, type
, x
, y
, z
, theta
);
686 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddVisual(IDirect3DRMFrame2
* iface
,
687 LPDIRECT3DRMVISUAL vis
)
689 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
691 TRACE("(%p/%p)->(%p)\n", iface
, This
, vis
);
693 return IDirect3DRMFrame3_AddVisual(&This
->IDirect3DRMFrame3_iface
, (LPUNKNOWN
)vis
);
696 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetChildren(IDirect3DRMFrame2
* iface
,
697 LPDIRECT3DRMFRAMEARRAY
*children
)
699 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
701 TRACE("(%p/%p)->(%p)\n", iface
, This
, children
);
703 return IDirect3DRMFrame3_GetChildren(&This
->IDirect3DRMFrame3_iface
, children
);
706 static D3DCOLOR WINAPI
IDirect3DRMFrame2Impl_GetColor(IDirect3DRMFrame2
* iface
)
708 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
710 FIXME("(%p/%p)->(): stub\n", iface
, This
);
715 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetLights(IDirect3DRMFrame2
* iface
,
716 LPDIRECT3DRMLIGHTARRAY
*lights
)
718 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
720 TRACE("(%p/%p)->(%p)\n", iface
, This
, lights
);
722 return IDirect3DRMFrame3_GetLights(&This
->IDirect3DRMFrame3_iface
, lights
);
725 static D3DRMMATERIALMODE WINAPI
IDirect3DRMFrame2Impl_GetMaterialMode(IDirect3DRMFrame2
* iface
)
727 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
729 FIXME("(%p/%p)->(): stub\n", iface
, This
);
731 return D3DRMMATERIAL_FROMPARENT
;
734 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetParent(IDirect3DRMFrame2
* iface
,
735 LPDIRECT3DRMFRAME
* frame
)
737 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
739 TRACE("(%p/%p)->(%p)\n", iface
, This
, frame
);
742 return D3DRMERR_BADVALUE
;
746 *frame
= (LPDIRECT3DRMFRAME
)&This
->parent
->IDirect3DRMFrame2_iface
;
747 IDirect3DRMFrame_AddRef(*frame
);
757 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetPosition(IDirect3DRMFrame2
* iface
,
758 LPDIRECT3DRMFRAME reference
,
759 LPD3DVECTOR return_position
)
761 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
763 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, reference
, return_position
);
768 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetRotation(IDirect3DRMFrame2
* iface
,
769 LPDIRECT3DRMFRAME reference
,
770 LPD3DVECTOR axis
, LPD3DVALUE return_theta
)
772 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
774 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, reference
, axis
, return_theta
);
779 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetScene(IDirect3DRMFrame2
* iface
,
780 LPDIRECT3DRMFRAME
* frame
)
782 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
784 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, frame
);
789 static D3DRMSORTMODE WINAPI
IDirect3DRMFrame2Impl_GetSortMode(IDirect3DRMFrame2
* iface
)
791 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
793 FIXME("(%p/%p)->(): stub\n", iface
, This
);
795 return D3DRMSORT_FROMPARENT
;
798 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetTexture(IDirect3DRMFrame2
* iface
,
799 LPDIRECT3DRMTEXTURE
* tex
)
801 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
803 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, tex
);
808 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetTransform(IDirect3DRMFrame2
* iface
,
809 D3DRMMATRIX4D return_matrix
)
811 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
813 TRACE("(%p/%p)->(%p)\n", iface
, This
, return_matrix
);
815 memcpy(&return_matrix
[0][0], &This
->transform
[0][0], sizeof(D3DRMMATRIX4D
));
820 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetVelocity(IDirect3DRMFrame2
* iface
,
821 LPDIRECT3DRMFRAME reference
,
822 LPD3DVECTOR return_velocity
,
825 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
827 FIXME("(%p/%p)->(%p,%p,%d): stub\n", iface
, This
, reference
, return_velocity
, with_rotation
);
832 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetOrientation(IDirect3DRMFrame2
* iface
,
833 LPDIRECT3DRMFRAME reference
,
834 LPD3DVECTOR dir
, LPD3DVECTOR up
)
836 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
838 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, reference
, dir
, up
);
843 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetVisuals(IDirect3DRMFrame2
* iface
,
844 LPDIRECT3DRMVISUALARRAY
*visuals
)
846 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
847 IDirect3DRMVisualArrayImpl
* obj
;
850 TRACE("(%p/%p)->(%p)\n", iface
, This
, visuals
);
853 return D3DRMERR_BADVALUE
;
855 hr
= Direct3DRMVisualArray_create(visuals
);
860 obj
= (IDirect3DRMVisualArrayImpl
*)*visuals
;
862 obj
->size
= This
->nb_visuals
;
863 if (This
->nb_visuals
)
866 obj
->visuals
= HeapAlloc(GetProcessHeap(), 0, This
->nb_visuals
* sizeof(LPDIRECT3DRMVISUAL
));
868 return E_OUTOFMEMORY
;
869 for (i
= 0; i
< This
->nb_visuals
; i
++)
871 obj
->visuals
[i
] = This
->visuals
[i
];
872 IDirect3DRMVisual_AddRef(This
->visuals
[i
]);
879 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetTextureTopology(IDirect3DRMFrame2
* iface
,
880 BOOL
*wrap_u
, BOOL
*wrap_v
)
882 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
884 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, wrap_u
, wrap_v
);
889 static HRESULT WINAPI
IDirect3DRMFrame2Impl_InverseTransform(IDirect3DRMFrame2
* iface
,
890 D3DVECTOR
*d
, D3DVECTOR
*s
)
892 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
894 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, d
, s
);
899 static HRESULT WINAPI
IDirect3DRMFrame2Impl_Load(IDirect3DRMFrame2
* iface
, LPVOID filename
,
900 LPVOID name
, D3DRMLOADOPTIONS loadflags
,
901 D3DRMLOADTEXTURECALLBACK cb
, LPVOID lpArg
)
903 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
905 FIXME("(%p/%p)->(%p,%p,%u,%p,%p): stub\n", iface
, This
, filename
, name
, loadflags
, cb
, lpArg
);
910 static HRESULT WINAPI
IDirect3DRMFrame2Impl_LookAt(IDirect3DRMFrame2
* iface
,
911 LPDIRECT3DRMFRAME target
,
912 LPDIRECT3DRMFRAME reference
,
913 D3DRMFRAMECONSTRAINT constraint
)
915 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
917 FIXME("(%p/%p)->(%p,%p,%u): stub\n", iface
, This
, target
, reference
, constraint
);
922 static HRESULT WINAPI
IDirect3DRMFrame2Impl_Move(IDirect3DRMFrame2
* iface
, D3DVALUE delta
)
924 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
926 FIXME("(%p/%p)->(%f): stub\n", iface
, This
, delta
);
931 static HRESULT WINAPI
IDirect3DRMFrame2Impl_DeleteChild(IDirect3DRMFrame2
* iface
,
932 LPDIRECT3DRMFRAME frame
)
934 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
935 IDirect3DRMFrame3
*child
;
938 TRACE("(%p/%p)->(%p)\n", iface
, This
, frame
);
941 return D3DRMERR_BADOBJECT
;
942 hr
= IDirect3DRMFrame_QueryInterface(frame
, &IID_IDirect3DRMFrame3
, (void**)&child
);
944 return D3DRMERR_BADOBJECT
;
945 IDirect3DRMFrame_Release(frame
);
947 return IDirect3DRMFrame3_DeleteChild(&This
->IDirect3DRMFrame3_iface
, child
);
950 static HRESULT WINAPI
IDirect3DRMFrame2Impl_DeleteLight(IDirect3DRMFrame2
* iface
,
951 LPDIRECT3DRMLIGHT light
)
953 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
955 TRACE("(%p/%p)->(%p)\n", iface
, This
, light
);
957 return IDirect3DRMFrame3_DeleteLight(&This
->IDirect3DRMFrame3_iface
, light
);
960 static HRESULT WINAPI
IDirect3DRMFrame2Impl_DeleteMoveCallback(IDirect3DRMFrame2
* iface
,
961 D3DRMFRAMEMOVECALLBACK cb
, VOID
*arg
)
963 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
965 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, cb
, arg
);
970 static HRESULT WINAPI
IDirect3DRMFrame2Impl_DeleteVisual(IDirect3DRMFrame2
* iface
,
971 LPDIRECT3DRMVISUAL vis
)
973 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
975 TRACE("(%p/%p)->(%p)\n", iface
, This
, vis
);
977 return IDirect3DRMFrame3_DeleteVisual(&This
->IDirect3DRMFrame3_iface
, (LPUNKNOWN
)vis
);
980 static D3DCOLOR WINAPI
IDirect3DRMFrame2Impl_GetSceneBackground(IDirect3DRMFrame2
* iface
)
982 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
984 FIXME("(%p/%p)->(): stub\n", iface
, This
);
989 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetSceneBackgroundDepth(IDirect3DRMFrame2
* iface
,
990 LPDIRECTDRAWSURFACE
* surface
)
992 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
994 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, surface
);
999 static D3DCOLOR WINAPI
IDirect3DRMFrame2Impl_GetSceneFogColor(IDirect3DRMFrame2
* iface
)
1001 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1003 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1008 static BOOL WINAPI
IDirect3DRMFrame2Impl_GetSceneFogEnable(IDirect3DRMFrame2
* iface
)
1010 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1012 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1017 static D3DRMFOGMODE WINAPI
IDirect3DRMFrame2Impl_GetSceneFogMode(IDirect3DRMFrame2
* iface
)
1019 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1021 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1023 return D3DRMFOG_LINEAR
;
1026 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetSceneFogParams(IDirect3DRMFrame2
* iface
,
1027 D3DVALUE
*return_start
,
1028 D3DVALUE
*return_end
,
1029 D3DVALUE
*return_density
)
1031 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1033 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, return_start
, return_end
, return_density
);
1038 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneBackground(IDirect3DRMFrame2
* iface
,
1041 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1043 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, color
);
1048 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneBackgroundRGB(IDirect3DRMFrame2
* iface
,
1049 D3DVALUE red
, D3DVALUE green
,
1052 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1054 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface
, This
, red
, green
, blue
);
1059 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneBackgroundDepth(IDirect3DRMFrame2
* iface
,
1060 LPDIRECTDRAWSURFACE surface
)
1062 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1064 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, surface
);
1069 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneBackgroundImage(IDirect3DRMFrame2
* iface
,
1070 LPDIRECT3DRMTEXTURE texture
)
1072 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1074 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, texture
);
1079 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneFogEnable(IDirect3DRMFrame2
* iface
, BOOL enable
)
1081 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1083 FIXME("(%p/%p)->(%d): stub\n", iface
, This
, enable
);
1088 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneFogColor(IDirect3DRMFrame2
* iface
,
1091 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1093 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, color
);
1098 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneFogMode(IDirect3DRMFrame2
* iface
,
1101 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1103 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
1108 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneFogParams(IDirect3DRMFrame2
* iface
,
1109 D3DVALUE start
, D3DVALUE end
,
1112 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1114 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface
, This
, start
, end
, density
);
1119 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetColor(IDirect3DRMFrame2
* iface
, D3DCOLOR color
)
1121 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1123 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, color
);
1128 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetColorRGB(IDirect3DRMFrame2
* iface
, D3DVALUE red
,
1129 D3DVALUE green
, D3DVALUE blue
)
1131 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1133 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface
, This
, red
, green
, blue
);
1138 static D3DRMZBUFFERMODE WINAPI
IDirect3DRMFrame2Impl_GetZbufferMode(IDirect3DRMFrame2
* iface
)
1140 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1142 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1144 return D3DRMZBUFFER_FROMPARENT
;
1147 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetMaterialMode(IDirect3DRMFrame2
* iface
,
1148 D3DRMMATERIALMODE mode
)
1150 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1152 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
1157 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetOrientation(IDirect3DRMFrame2
* iface
,
1158 LPDIRECT3DRMFRAME reference
,
1159 D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
,
1160 D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
)
1162 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1164 FIXME("(%p/%p)->(%p,%f,%f,%f,%f,%f,%f): stub\n", iface
, This
, reference
,
1165 dx
, dy
, dz
, ux
, uy
, uz
);
1170 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetPosition(IDirect3DRMFrame2
* iface
,
1171 LPDIRECT3DRMFRAME reference
,
1172 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
)
1174 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1176 FIXME("(%p/%p)->(%p,%f,%f,%f): stub\n", iface
, This
, reference
, x
, y
, z
);
1181 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetRotation(IDirect3DRMFrame2
* iface
,
1182 LPDIRECT3DRMFRAME reference
,
1183 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
,
1186 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1188 FIXME("(%p/%p)->(%p,%f,%f,%f,%f): stub\n", iface
, This
, reference
, x
, y
, z
, theta
);
1193 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSortMode(IDirect3DRMFrame2
* iface
,
1196 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1198 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
1203 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetTexture(IDirect3DRMFrame2
* iface
,
1204 LPDIRECT3DRMTEXTURE texture
)
1206 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1208 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, texture
);
1213 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetTextureTopology(IDirect3DRMFrame2
* iface
,
1214 BOOL wrap_u
, BOOL wrap_v
)
1216 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1218 FIXME("(%p/%p)->(%d,%d): stub\n", iface
, This
, wrap_u
, wrap_v
);
1223 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetVelocity(IDirect3DRMFrame2
* iface
,
1224 LPDIRECT3DRMFRAME reference
,
1225 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
,
1228 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1230 FIXME("(%p/%p)->(%p,%f,%f,%f,%d): stub\n", iface
, This
, reference
, x
, y
, z
, with_rotation
);
1235 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetZbufferMode(IDirect3DRMFrame2
* iface
,
1236 D3DRMZBUFFERMODE mode
)
1238 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1240 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
1245 static HRESULT WINAPI
IDirect3DRMFrame2Impl_Transform(IDirect3DRMFrame2
* iface
, D3DVECTOR
*d
,
1248 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1250 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, d
, s
);
1255 /*** IDirect3DRMFrame2 methods ***/
1256 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddMoveCallback2(IDirect3DRMFrame2
* iface
,
1257 D3DRMFRAMEMOVECALLBACK cb
, VOID
*arg
,
1260 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1262 FIXME("(%p/%p)->(%p,%p,%u): stub\n", iface
, This
, cb
, arg
, flags
);
1267 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetBox(IDirect3DRMFrame2
* iface
, LPD3DRMBOX box
)
1269 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1271 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, box
);
1276 static BOOL WINAPI
IDirect3DRMFrame2Impl_GetBoxEnable(IDirect3DRMFrame2
* iface
)
1278 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1280 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1285 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetAxes(IDirect3DRMFrame2
* iface
,
1286 LPD3DVECTOR dir
, LPD3DVECTOR up
)
1288 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1290 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, dir
, up
);
1295 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetMaterial(IDirect3DRMFrame2
* iface
,
1296 LPDIRECT3DRMMATERIAL
*material
)
1298 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1300 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, material
);
1305 static BOOL WINAPI
IDirect3DRMFrame2Impl_GetInheritAxes(IDirect3DRMFrame2
* iface
)
1307 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1309 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1314 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetHierarchyBox(IDirect3DRMFrame2
* iface
,
1317 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
1319 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, box
);
1324 static const struct IDirect3DRMFrame2Vtbl Direct3DRMFrame2_Vtbl
=
1326 /*** IUnknown methods ***/
1327 IDirect3DRMFrame2Impl_QueryInterface
,
1328 IDirect3DRMFrame2Impl_AddRef
,
1329 IDirect3DRMFrame2Impl_Release
,
1330 /*** IDirect3DRMObject methods ***/
1331 IDirect3DRMFrame2Impl_Clone
,
1332 IDirect3DRMFrame2Impl_AddDestroyCallback
,
1333 IDirect3DRMFrame2Impl_DeleteDestroyCallback
,
1334 IDirect3DRMFrame2Impl_SetAppData
,
1335 IDirect3DRMFrame2Impl_GetAppData
,
1336 IDirect3DRMFrame2Impl_SetName
,
1337 IDirect3DRMFrame2Impl_GetName
,
1338 IDirect3DRMFrame2Impl_GetClassName
,
1339 /*** IDirect3DRMFrame methods ***/
1340 IDirect3DRMFrame2Impl_AddChild
,
1341 IDirect3DRMFrame2Impl_AddLight
,
1342 IDirect3DRMFrame2Impl_AddMoveCallback
,
1343 IDirect3DRMFrame2Impl_AddTransform
,
1344 IDirect3DRMFrame2Impl_AddTranslation
,
1345 IDirect3DRMFrame2Impl_AddScale
,
1346 IDirect3DRMFrame2Impl_AddRotation
,
1347 IDirect3DRMFrame2Impl_AddVisual
,
1348 IDirect3DRMFrame2Impl_GetChildren
,
1349 IDirect3DRMFrame2Impl_GetColor
,
1350 IDirect3DRMFrame2Impl_GetLights
,
1351 IDirect3DRMFrame2Impl_GetMaterialMode
,
1352 IDirect3DRMFrame2Impl_GetParent
,
1353 IDirect3DRMFrame2Impl_GetPosition
,
1354 IDirect3DRMFrame2Impl_GetRotation
,
1355 IDirect3DRMFrame2Impl_GetScene
,
1356 IDirect3DRMFrame2Impl_GetSortMode
,
1357 IDirect3DRMFrame2Impl_GetTexture
,
1358 IDirect3DRMFrame2Impl_GetTransform
,
1359 IDirect3DRMFrame2Impl_GetVelocity
,
1360 IDirect3DRMFrame2Impl_GetOrientation
,
1361 IDirect3DRMFrame2Impl_GetVisuals
,
1362 IDirect3DRMFrame2Impl_GetTextureTopology
,
1363 IDirect3DRMFrame2Impl_InverseTransform
,
1364 IDirect3DRMFrame2Impl_Load
,
1365 IDirect3DRMFrame2Impl_LookAt
,
1366 IDirect3DRMFrame2Impl_Move
,
1367 IDirect3DRMFrame2Impl_DeleteChild
,
1368 IDirect3DRMFrame2Impl_DeleteLight
,
1369 IDirect3DRMFrame2Impl_DeleteMoveCallback
,
1370 IDirect3DRMFrame2Impl_DeleteVisual
,
1371 IDirect3DRMFrame2Impl_GetSceneBackground
,
1372 IDirect3DRMFrame2Impl_GetSceneBackgroundDepth
,
1373 IDirect3DRMFrame2Impl_GetSceneFogColor
,
1374 IDirect3DRMFrame2Impl_GetSceneFogEnable
,
1375 IDirect3DRMFrame2Impl_GetSceneFogMode
,
1376 IDirect3DRMFrame2Impl_GetSceneFogParams
,
1377 IDirect3DRMFrame2Impl_SetSceneBackground
,
1378 IDirect3DRMFrame2Impl_SetSceneBackgroundRGB
,
1379 IDirect3DRMFrame2Impl_SetSceneBackgroundDepth
,
1380 IDirect3DRMFrame2Impl_SetSceneBackgroundImage
,
1381 IDirect3DRMFrame2Impl_SetSceneFogEnable
,
1382 IDirect3DRMFrame2Impl_SetSceneFogColor
,
1383 IDirect3DRMFrame2Impl_SetSceneFogMode
,
1384 IDirect3DRMFrame2Impl_SetSceneFogParams
,
1385 IDirect3DRMFrame2Impl_SetColor
,
1386 IDirect3DRMFrame2Impl_SetColorRGB
,
1387 IDirect3DRMFrame2Impl_GetZbufferMode
,
1388 IDirect3DRMFrame2Impl_SetMaterialMode
,
1389 IDirect3DRMFrame2Impl_SetOrientation
,
1390 IDirect3DRMFrame2Impl_SetPosition
,
1391 IDirect3DRMFrame2Impl_SetRotation
,
1392 IDirect3DRMFrame2Impl_SetSortMode
,
1393 IDirect3DRMFrame2Impl_SetTexture
,
1394 IDirect3DRMFrame2Impl_SetTextureTopology
,
1395 IDirect3DRMFrame2Impl_SetVelocity
,
1396 IDirect3DRMFrame2Impl_SetZbufferMode
,
1397 IDirect3DRMFrame2Impl_Transform
,
1398 /*** IDirect3DRMFrame2 methods ***/
1399 IDirect3DRMFrame2Impl_AddMoveCallback2
,
1400 IDirect3DRMFrame2Impl_GetBox
,
1401 IDirect3DRMFrame2Impl_GetBoxEnable
,
1402 IDirect3DRMFrame2Impl_GetAxes
,
1403 IDirect3DRMFrame2Impl_GetMaterial
,
1404 IDirect3DRMFrame2Impl_GetInheritAxes
,
1405 IDirect3DRMFrame2Impl_GetHierarchyBox
1408 /*** IUnknown methods ***/
1409 static HRESULT WINAPI
IDirect3DRMFrame3Impl_QueryInterface(IDirect3DRMFrame3
* iface
,
1410 REFIID riid
, void** object
)
1412 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1413 return IDirect3DRMFrame_QueryInterface(&This
->IDirect3DRMFrame2_iface
, riid
, object
);
1416 static ULONG WINAPI
IDirect3DRMFrame3Impl_AddRef(IDirect3DRMFrame3
* iface
)
1418 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1419 return IDirect3DRMFrame2_AddRef(&This
->IDirect3DRMFrame2_iface
);
1422 static ULONG WINAPI
IDirect3DRMFrame3Impl_Release(IDirect3DRMFrame3
* iface
)
1424 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1425 return IDirect3DRMFrame2_Release(&This
->IDirect3DRMFrame2_iface
);
1428 /*** IDirect3DRMObject methods ***/
1429 static HRESULT WINAPI
IDirect3DRMFrame3Impl_Clone(IDirect3DRMFrame3
* iface
,
1430 LPUNKNOWN unkwn
, REFIID riid
,
1433 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1435 FIXME("(%p/%p)->(%p, %s, %p): stub\n", iface
, This
, unkwn
, debugstr_guid(riid
), object
);
1440 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddDestroyCallback(IDirect3DRMFrame3
* iface
,
1441 D3DRMOBJECTCALLBACK cb
,
1444 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1446 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
1451 static HRESULT WINAPI
IDirect3DRMFrame3Impl_DeleteDestroyCallback(IDirect3DRMFrame3
* iface
,
1452 D3DRMOBJECTCALLBACK cb
,
1455 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1457 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
1462 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetAppData(IDirect3DRMFrame3
* iface
,
1465 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1467 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, data
);
1472 static DWORD WINAPI
IDirect3DRMFrame3Impl_GetAppData(IDirect3DRMFrame3
* iface
)
1474 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1476 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1481 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetName(IDirect3DRMFrame3
* iface
, LPCSTR name
)
1483 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1485 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, name
);
1490 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetName(IDirect3DRMFrame3
* iface
,
1491 LPDWORD size
, LPSTR name
)
1493 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1495 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, size
, name
);
1500 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetClassName(IDirect3DRMFrame3
* iface
,
1501 LPDWORD size
, LPSTR name
)
1503 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1505 TRACE("(%p/%p)->(%p, %p)\n", iface
, This
, size
, name
);
1507 if (!size
|| *size
< strlen("Frame") || !name
)
1508 return E_INVALIDARG
;
1510 strcpy(name
, "Frame");
1511 *size
= sizeof("Frame");
1516 /*** IDirect3DRMFrame methods ***/
1517 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddChild(IDirect3DRMFrame3
* iface
,
1518 LPDIRECT3DRMFRAME3 child
)
1520 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1521 IDirect3DRMFrameImpl
*child_obj
= unsafe_impl_from_IDirect3DRMFrame3(child
);
1523 TRACE("(%p/%p)->(%p)\n", iface
, This
, child
);
1526 return D3DRMERR_BADOBJECT
;
1528 if (child_obj
->parent
)
1530 IDirect3DRMFrame3
* parent
= &child_obj
->parent
->IDirect3DRMFrame3_iface
;
1532 if (parent
== iface
)
1534 /* Passed frame is already a child so return success */
1539 /* Remove parent and continue */
1540 IDirect3DRMFrame3_DeleteChild(parent
, child
);
1544 if ((This
->nb_children
+ 1) > This
->children_capacity
)
1547 IDirect3DRMFrame3
** children
;
1549 if (!This
->children_capacity
)
1552 children
= HeapAlloc(GetProcessHeap(), 0, new_capacity
* sizeof(IDirect3DRMFrame3
*));
1556 new_capacity
= This
->children_capacity
* 2;
1557 children
= HeapReAlloc(GetProcessHeap(), 0, This
->children
, new_capacity
* sizeof(IDirect3DRMFrame3
*));
1561 return E_OUTOFMEMORY
;
1563 This
->children_capacity
= new_capacity
;
1564 This
->children
= children
;
1567 This
->children
[This
->nb_children
++] = child
;
1568 IDirect3DRMFrame3_AddRef(child
);
1569 child_obj
->parent
= This
;
1574 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddLight(IDirect3DRMFrame3
* iface
,
1575 LPDIRECT3DRMLIGHT light
)
1577 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1579 IDirect3DRMLight
** lights
;
1581 TRACE("(%p/%p)->(%p)\n", iface
, This
, light
);
1584 return D3DRMERR_BADOBJECT
;
1586 /* Check if already existing and return gracefully without increasing ref count */
1587 for (i
= 0; i
< This
->nb_lights
; i
++)
1588 if (This
->lights
[i
] == light
)
1591 if ((This
->nb_lights
+ 1) > This
->lights_capacity
)
1595 if (!This
->lights_capacity
)
1598 lights
= HeapAlloc(GetProcessHeap(), 0, new_capacity
* sizeof(IDirect3DRMLight
*));
1602 new_capacity
= This
->lights_capacity
* 2;
1603 lights
= HeapReAlloc(GetProcessHeap(), 0, This
->lights
, new_capacity
* sizeof(IDirect3DRMLight
*));
1607 return E_OUTOFMEMORY
;
1609 This
->lights_capacity
= new_capacity
;
1610 This
->lights
= lights
;
1613 This
->lights
[This
->nb_lights
++] = light
;
1614 IDirect3DRMLight_AddRef(light
);
1619 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddMoveCallback(IDirect3DRMFrame3
* iface
,
1620 D3DRMFRAME3MOVECALLBACK cb
, VOID
*arg
,
1623 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1625 FIXME("(%p/%p)->(%p,%p,%u): stub\n", iface
, This
, cb
, arg
, flags
);
1630 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddTransform(IDirect3DRMFrame3
* iface
,
1631 D3DRMCOMBINETYPE type
,
1632 D3DRMMATRIX4D matrix
)
1634 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1636 TRACE("(%p/%p)->(%u,%p)\n", iface
, This
, type
, matrix
);
1640 case D3DRMCOMBINE_REPLACE
:
1641 memcpy(&This
->transform
[0][0], &matrix
[0][0], sizeof(D3DRMMATRIX4D
));
1644 case D3DRMCOMBINE_BEFORE
:
1645 FIXME("D3DRMCOMBINE_BEFORE not supported yed\n");
1648 case D3DRMCOMBINE_AFTER
:
1649 FIXME("D3DRMCOMBINE_AFTER not supported yed\n");
1653 WARN("Unknown Combine Type %u\n", type
);
1654 return D3DRMERR_BADVALUE
;
1660 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddTranslation(IDirect3DRMFrame3
* iface
,
1661 D3DRMCOMBINETYPE type
,
1662 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
)
1664 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1666 FIXME("(%p/%p)->(%u,%f,%f,%f): stub\n", iface
, This
, type
, x
, y
, z
);
1671 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddScale(IDirect3DRMFrame3
* iface
,
1672 D3DRMCOMBINETYPE type
,
1673 D3DVALUE sx
, D3DVALUE sy
, D3DVALUE sz
)
1675 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1677 FIXME("(%p/%p)->(%u,%f,%f,%f): stub\n", iface
, This
, type
, sx
, sy
, sz
);
1682 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddRotation(IDirect3DRMFrame3
* iface
,
1683 D3DRMCOMBINETYPE type
,
1684 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
,
1687 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1689 FIXME("(%p/%p)->(%u,%f,%f,%f,%f): stub\n", iface
, This
, type
, x
, y
, z
, theta
);
1694 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddVisual(IDirect3DRMFrame3
* iface
, LPUNKNOWN vis
)
1696 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1698 IDirect3DRMVisual
** visuals
;
1700 TRACE("(%p/%p)->(%p)\n", iface
, This
, vis
);
1703 return D3DRMERR_BADOBJECT
;
1705 /* Check if already existing and return gracefully without increasing ref count */
1706 for (i
= 0; i
< This
->nb_visuals
; i
++)
1707 if (This
->visuals
[i
] == (IDirect3DRMVisual
*)vis
)
1710 if ((This
->nb_visuals
+ 1) > This
->visuals_capacity
)
1714 if (!This
->visuals_capacity
)
1717 visuals
= HeapAlloc(GetProcessHeap(), 0, new_capacity
* sizeof(IDirect3DRMVisual
*));
1721 new_capacity
= This
->visuals_capacity
* 2;
1722 visuals
= HeapReAlloc(GetProcessHeap(), 0, This
->visuals
, new_capacity
* sizeof(IDirect3DRMVisual
*));
1726 return E_OUTOFMEMORY
;
1728 This
->visuals_capacity
= new_capacity
;
1729 This
->visuals
= visuals
;
1732 This
->visuals
[This
->nb_visuals
++] = (IDirect3DRMVisual
*)vis
;
1733 IDirect3DRMVisual_AddRef(vis
);
1738 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetChildren(IDirect3DRMFrame3
* iface
,
1739 LPDIRECT3DRMFRAMEARRAY
*children
)
1741 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1742 IDirect3DRMFrameArrayImpl
* obj
;
1745 TRACE("(%p/%p)->(%p)\n", iface
, This
, children
);
1748 return D3DRMERR_BADVALUE
;
1750 hr
= Direct3DRMFrameArray_create(children
);
1755 obj
= (IDirect3DRMFrameArrayImpl
*)*children
;
1757 obj
->size
= This
->nb_children
;
1758 if (This
->nb_children
)
1761 obj
->frames
= HeapAlloc(GetProcessHeap(), 0, This
->nb_children
* sizeof(LPDIRECT3DRMFRAME
));
1763 return E_OUTOFMEMORY
;
1764 for (i
= 0; i
< This
->nb_children
; i
++)
1765 IDirect3DRMFrame3_QueryInterface(This
->children
[i
], &IID_IDirect3DRMFrame
, (void**)&obj
->frames
[i
]);
1771 static D3DCOLOR WINAPI
IDirect3DRMFrame3Impl_GetColor(IDirect3DRMFrame3
* iface
)
1773 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1775 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1780 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetLights(IDirect3DRMFrame3
* iface
,
1781 LPDIRECT3DRMLIGHTARRAY
*lights
)
1783 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1784 IDirect3DRMLightArrayImpl
* obj
;
1787 TRACE("(%p/%p)->(%p)\n", iface
, This
, lights
);
1790 return D3DRMERR_BADVALUE
;
1792 hr
= Direct3DRMLightArray_create(lights
);
1797 obj
= (IDirect3DRMLightArrayImpl
*)*lights
;
1799 obj
->size
= This
->nb_lights
;
1800 if (This
->nb_lights
)
1803 obj
->lights
= HeapAlloc(GetProcessHeap(), 0, This
->nb_lights
* sizeof(LPDIRECT3DRMLIGHT
));
1805 return E_OUTOFMEMORY
;
1806 for (i
= 0; i
< This
->nb_lights
; i
++)
1807 IDirect3DRMLight_QueryInterface(This
->lights
[i
], &IID_IDirect3DRMLight
, (void**)&obj
->lights
[i
]);
1813 static D3DRMMATERIALMODE WINAPI
IDirect3DRMFrame3Impl_GetMaterialMode(IDirect3DRMFrame3
* iface
)
1815 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1817 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1819 return D3DRMMATERIAL_FROMPARENT
;
1822 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetParent(IDirect3DRMFrame3
* iface
,
1823 LPDIRECT3DRMFRAME3
* frame
)
1825 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1827 TRACE("(%p/%p)->(%p)\n", iface
, This
, frame
);
1830 return D3DRMERR_BADVALUE
;
1834 *frame
= &This
->parent
->IDirect3DRMFrame3_iface
;
1835 IDirect3DRMFrame_AddRef(*frame
);
1845 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetPosition(IDirect3DRMFrame3
* iface
,
1846 LPDIRECT3DRMFRAME3 reference
,
1847 LPD3DVECTOR return_position
)
1849 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1851 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, reference
, return_position
);
1856 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetRotation(IDirect3DRMFrame3
* iface
,
1857 LPDIRECT3DRMFRAME3 reference
,
1858 LPD3DVECTOR axis
, LPD3DVALUE return_theta
)
1860 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1862 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, reference
, axis
, return_theta
);
1867 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetScene(IDirect3DRMFrame3
* iface
,
1868 LPDIRECT3DRMFRAME3
* frame
)
1870 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1872 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, frame
);
1877 static D3DRMSORTMODE WINAPI
IDirect3DRMFrame3Impl_GetSortMode(IDirect3DRMFrame3
* iface
)
1879 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1881 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1883 return D3DRMSORT_FROMPARENT
;
1886 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetTexture(IDirect3DRMFrame3
* iface
,
1887 LPDIRECT3DRMTEXTURE3
* tex
)
1889 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1891 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, tex
);
1896 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetTransform(IDirect3DRMFrame3
* iface
,
1897 LPDIRECT3DRMFRAME3 reference
,
1898 D3DRMMATRIX4D return_matrix
)
1900 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1902 TRACE("(%p/%p)->(%p,%p)\n", iface
, This
, reference
, return_matrix
);
1905 FIXME("Specifying a frame as the root of the scene different from the current root frame is not supported yet\n");
1907 memcpy(&return_matrix
[0][0], &This
->transform
[0][0], sizeof(D3DRMMATRIX4D
));
1912 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetVelocity(IDirect3DRMFrame3
* iface
,
1913 LPDIRECT3DRMFRAME3 reference
,
1914 LPD3DVECTOR return_velocity
,
1917 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1919 FIXME("(%p/%p)->(%p,%p,%d): stub\n", iface
, This
, reference
, return_velocity
, with_rotation
);
1924 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetOrientation(IDirect3DRMFrame3
* iface
,
1925 LPDIRECT3DRMFRAME3 reference
,
1926 LPD3DVECTOR dir
, LPD3DVECTOR up
)
1928 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1930 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, reference
, dir
, up
);
1935 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetVisuals(IDirect3DRMFrame3
* iface
, LPDWORD num
,
1938 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1940 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, num
, visuals
);
1945 static HRESULT WINAPI
IDirect3DRMFrame3Impl_InverseTransform(IDirect3DRMFrame3
* iface
,
1946 D3DVECTOR
*d
, D3DVECTOR
*s
)
1948 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1950 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, d
, s
);
1955 static HRESULT WINAPI
IDirect3DRMFrame3Impl_Load(IDirect3DRMFrame3
* iface
, LPVOID filename
,
1956 LPVOID name
, D3DRMLOADOPTIONS loadflags
,
1957 D3DRMLOADTEXTURE3CALLBACK cb
, LPVOID lpArg
)
1959 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1961 FIXME("(%p/%p)->(%p,%p,%u,%p,%p): stub\n", iface
, This
, filename
, name
, loadflags
, cb
, lpArg
);
1966 static HRESULT WINAPI
IDirect3DRMFrame3Impl_LookAt(IDirect3DRMFrame3
* iface
,
1967 LPDIRECT3DRMFRAME3 target
,
1968 LPDIRECT3DRMFRAME3 reference
,
1969 D3DRMFRAMECONSTRAINT constraint
)
1971 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1973 FIXME("(%p/%p)->(%p,%p,%u): stub\n", iface
, This
, target
, reference
, constraint
);
1978 static HRESULT WINAPI
IDirect3DRMFrame3Impl_Move(IDirect3DRMFrame3
* iface
, D3DVALUE delta
)
1980 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1982 FIXME("(%p/%p)->(%f): stub\n", iface
, This
, delta
);
1987 static HRESULT WINAPI
IDirect3DRMFrame3Impl_DeleteChild(IDirect3DRMFrame3
* iface
,
1988 LPDIRECT3DRMFRAME3 frame
)
1990 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1991 IDirect3DRMFrameImpl
*frame_obj
= unsafe_impl_from_IDirect3DRMFrame3(frame
);
1994 TRACE("(%p/%p)->(%p)\n", iface
, This
, frame
);
1997 return D3DRMERR_BADOBJECT
;
1999 /* Check if child exists */
2000 for (i
= 0; i
< This
->nb_children
; i
++)
2001 if (This
->children
[i
] == frame
)
2004 if (i
== This
->nb_children
)
2005 return D3DRMERR_BADVALUE
;
2007 memmove(This
->children
+ i
, This
->children
+ i
+ 1, sizeof(IDirect3DRMFrame3
*) * (This
->nb_children
- 1 - i
));
2008 IDirect3DRMFrame3_Release(frame
);
2009 frame_obj
->parent
= NULL
;
2010 This
->nb_children
--;
2015 static HRESULT WINAPI
IDirect3DRMFrame3Impl_DeleteLight(IDirect3DRMFrame3
* iface
,
2016 LPDIRECT3DRMLIGHT light
)
2018 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2021 TRACE("(%p/%p)->(%p)\n", iface
, This
, light
);
2024 return D3DRMERR_BADOBJECT
;
2026 /* Check if visual exists */
2027 for (i
= 0; i
< This
->nb_lights
; i
++)
2028 if (This
->lights
[i
] == light
)
2031 if (i
== This
->nb_lights
)
2032 return D3DRMERR_BADVALUE
;
2034 memmove(This
->lights
+ i
, This
->lights
+ i
+ 1, sizeof(IDirect3DRMLight
*) * (This
->nb_lights
- 1 - i
));
2035 IDirect3DRMLight_Release(light
);
2041 static HRESULT WINAPI
IDirect3DRMFrame3Impl_DeleteMoveCallback(IDirect3DRMFrame3
* iface
,
2042 D3DRMFRAME3MOVECALLBACK cb
,
2045 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2047 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, cb
, arg
);
2052 static HRESULT WINAPI
IDirect3DRMFrame3Impl_DeleteVisual(IDirect3DRMFrame3
* iface
, LPUNKNOWN vis
)
2054 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2057 TRACE("(%p/%p)->(%p)\n", iface
, This
, vis
);
2060 return D3DRMERR_BADOBJECT
;
2062 /* Check if visual exists */
2063 for (i
= 0; i
< This
->nb_visuals
; i
++)
2064 if (This
->visuals
[i
] == (IDirect3DRMVisual
*)vis
)
2067 if (i
== This
->nb_visuals
)
2068 return D3DRMERR_BADVALUE
;
2070 memmove(This
->visuals
+ i
, This
->visuals
+ i
+ 1, sizeof(IDirect3DRMVisual
*) * (This
->nb_visuals
- 1 - i
));
2071 IDirect3DRMVisual_Release(vis
);
2077 static D3DCOLOR WINAPI
IDirect3DRMFrame3Impl_GetSceneBackground(IDirect3DRMFrame3
* iface
)
2079 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2081 FIXME("(%p/%p)->(): stub\n", iface
, This
);
2086 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetSceneBackgroundDepth(IDirect3DRMFrame3
* iface
,
2087 LPDIRECTDRAWSURFACE
* surface
)
2089 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2091 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, surface
);
2096 static D3DCOLOR WINAPI
IDirect3DRMFrame3Impl_GetSceneFogColor(IDirect3DRMFrame3
* iface
)
2098 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2100 FIXME("(%p/%p)->(): stub\n", iface
, This
);
2105 static BOOL WINAPI
IDirect3DRMFrame3Impl_GetSceneFogEnable(IDirect3DRMFrame3
* iface
)
2107 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2109 FIXME("(%p/%p)->(): stub\n", iface
, This
);
2114 static D3DRMFOGMODE WINAPI
IDirect3DRMFrame3Impl_GetSceneFogMode(IDirect3DRMFrame3
* iface
)
2116 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2118 FIXME("(%p/%p)->(): stub\n", iface
, This
);
2120 return D3DRMFOG_LINEAR
;
2123 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetSceneFogParams(IDirect3DRMFrame3
* iface
,
2124 D3DVALUE
*return_start
,
2125 D3DVALUE
*return_end
,
2126 D3DVALUE
*return_density
)
2128 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2130 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, return_start
, return_end
, return_density
);
2135 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneBackground(IDirect3DRMFrame3
* iface
,
2138 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2140 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, color
);
2145 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneBackgroundRGB(IDirect3DRMFrame3
* iface
,
2146 D3DVALUE red
, D3DVALUE green
,
2149 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2151 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface
, This
, red
, green
, blue
);
2156 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneBackgroundDepth(IDirect3DRMFrame3
* iface
,
2157 LPDIRECTDRAWSURFACE surface
)
2159 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2161 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, surface
);
2166 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneBackgroundImage(IDirect3DRMFrame3
* iface
,
2167 LPDIRECT3DRMTEXTURE3 texture
)
2169 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2171 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, texture
);
2176 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneFogEnable(IDirect3DRMFrame3
* iface
, BOOL enable
)
2178 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2180 FIXME("(%p/%p)->(%d): stub\n", iface
, This
, enable
);
2185 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneFogColor(IDirect3DRMFrame3
* iface
,
2188 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2190 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, color
);
2195 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneFogMode(IDirect3DRMFrame3
* iface
,
2198 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2200 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
2205 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneFogParams(IDirect3DRMFrame3
* iface
,
2206 D3DVALUE start
, D3DVALUE end
,
2209 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2211 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface
, This
, start
, end
, density
);
2216 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetColor(IDirect3DRMFrame3
* iface
, D3DCOLOR color
)
2218 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2220 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, color
);
2225 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetColorRGB(IDirect3DRMFrame3
* iface
, D3DVALUE red
,
2226 D3DVALUE green
, D3DVALUE blue
)
2228 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2230 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface
, This
, red
, green
, blue
);
2235 static D3DRMZBUFFERMODE WINAPI
IDirect3DRMFrame3Impl_GetZbufferMode(IDirect3DRMFrame3
* iface
)
2237 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2239 FIXME("(%p/%p)->(): stub\n", iface
, This
);
2241 return D3DRMZBUFFER_FROMPARENT
;
2244 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetMaterialMode(IDirect3DRMFrame3
* iface
,
2245 D3DRMMATERIALMODE mode
)
2247 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2249 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
2254 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetOrientation(IDirect3DRMFrame3
* iface
,
2255 LPDIRECT3DRMFRAME3 reference
,
2256 D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
,
2257 D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
)
2259 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2261 FIXME("(%p/%p)->(%p,%f,%f,%f,%f,%f,%f): stub\n", iface
, This
, reference
,
2262 dx
, dy
, dz
, ux
, uy
, uz
);
2267 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetPosition(IDirect3DRMFrame3
* iface
,
2268 LPDIRECT3DRMFRAME3 reference
,
2269 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
)
2271 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2273 FIXME("(%p/%p)->(%p,%f,%f,%f): stub\n", iface
, This
, reference
, x
, y
, z
);
2278 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetRotation(IDirect3DRMFrame3
* iface
,
2279 LPDIRECT3DRMFRAME3 reference
,
2280 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
,
2283 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2285 FIXME("(%p/%p)->(%p,%f,%f,%f,%f): stub\n", iface
, This
, reference
, x
, y
, z
, theta
);
2290 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSortMode(IDirect3DRMFrame3
* iface
,
2293 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2295 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
2300 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetTexture(IDirect3DRMFrame3
* iface
,
2301 LPDIRECT3DRMTEXTURE3 texture
)
2303 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2305 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, texture
);
2310 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetVelocity(IDirect3DRMFrame3
* iface
,
2311 LPDIRECT3DRMFRAME3 reference
,
2312 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
,
2315 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2317 FIXME("(%p/%p)->(%p,%f,%f,%f,%d): stub\n", iface
, This
, reference
, x
, y
, z
, with_rotation
);
2322 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetZbufferMode(IDirect3DRMFrame3
* iface
,
2323 D3DRMZBUFFERMODE mode
)
2325 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2327 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
2332 static HRESULT WINAPI
IDirect3DRMFrame3Impl_Transform(IDirect3DRMFrame3
* iface
, D3DVECTOR
*d
,
2335 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2337 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, d
, s
);
2342 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetBox(IDirect3DRMFrame3
* iface
, LPD3DRMBOX box
)
2344 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2346 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, box
);
2351 static BOOL WINAPI
IDirect3DRMFrame3Impl_GetBoxEnable(IDirect3DRMFrame3
* iface
)
2353 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2355 FIXME("(%p/%p)->(): stub\n", iface
, This
);
2360 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetAxes(IDirect3DRMFrame3
* iface
,
2361 LPD3DVECTOR dir
, LPD3DVECTOR up
)
2363 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2365 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, dir
, up
);
2370 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetMaterial(IDirect3DRMFrame3
* iface
,
2371 LPDIRECT3DRMMATERIAL2
*material
)
2373 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2375 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, material
);
2380 static BOOL WINAPI
IDirect3DRMFrame3Impl_GetInheritAxes(IDirect3DRMFrame3
* iface
)
2382 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2384 FIXME("(%p/%p)->(): stub\n", iface
, This
);
2389 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetHierarchyBox(IDirect3DRMFrame3
* iface
,
2392 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2394 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, box
);
2399 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetBox(IDirect3DRMFrame3
* iface
, LPD3DRMBOX box
)
2401 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2403 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, box
);
2408 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetBoxEnable(IDirect3DRMFrame3
* iface
, BOOL enable
)
2410 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2412 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, enable
);
2417 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetAxes(IDirect3DRMFrame3
* iface
,
2418 D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
,
2419 D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
)
2421 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2423 FIXME("(%p/%p)->(%f,%f,%f,%f,%f,%f): stub\n", iface
, This
, dx
, dy
, dz
, ux
, uy
, uz
);
2428 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetInheritAxes(IDirect3DRMFrame3
* iface
,
2429 BOOL inherit_from_parent
)
2431 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2433 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, inherit_from_parent
);
2438 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetMaterial(IDirect3DRMFrame3
* iface
,
2439 LPDIRECT3DRMMATERIAL2 material
)
2441 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2443 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, material
);
2448 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetQuaternion(IDirect3DRMFrame3
* iface
,
2449 LPDIRECT3DRMFRAME3 reference
,
2452 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2454 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, reference
, q
);
2459 static HRESULT WINAPI
IDirect3DRMFrame3Impl_RayPick(IDirect3DRMFrame3
* iface
,
2460 LPDIRECT3DRMFRAME3 reference
, LPD3DRMRAY ray
,
2462 LPDIRECT3DRMPICKED2ARRAY
*return_visuals
)
2464 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2466 FIXME("(%p/%p)->(%p,%p,%u,%p): stub\n", iface
, This
, reference
, ray
, flags
, return_visuals
);
2471 static HRESULT WINAPI
IDirect3DRMFrame3Impl_Save(IDirect3DRMFrame3
* iface
, LPCSTR filename
,
2472 D3DRMXOFFORMAT d3dFormat
,
2473 D3DRMSAVEOPTIONS d3dSaveFlags
)
2475 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2477 FIXME("(%p/%p)->(%p,%u,%u): stub\n", iface
, This
, filename
, d3dFormat
, d3dSaveFlags
);
2482 static HRESULT WINAPI
IDirect3DRMFrame3Impl_TransformVectors(IDirect3DRMFrame3
* iface
,
2483 LPDIRECT3DRMFRAME3 reference
,
2484 DWORD num
, LPD3DVECTOR dst
,
2487 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2489 FIXME("(%p/%p)->(%p,%u,%p,%p): stub\n", iface
, This
, reference
, num
, dst
, src
);
2494 static HRESULT WINAPI
IDirect3DRMFrame3Impl_InverseTransformVectors(IDirect3DRMFrame3
* iface
,
2495 LPDIRECT3DRMFRAME3 reference
,
2496 DWORD num
, LPD3DVECTOR dst
,
2499 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2501 FIXME("(%p/%p)->(%p,%u,%p,%p): stub\n", iface
, This
, reference
, num
, dst
, src
);
2506 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetTraversalOptions(IDirect3DRMFrame3
* iface
,
2509 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2511 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, flags
);
2516 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetTraversalOptions(IDirect3DRMFrame3
* iface
,
2519 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2521 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, flags
);
2526 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneFogMethod(IDirect3DRMFrame3
* iface
,
2529 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2531 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, flags
);
2536 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetSceneFogMethod(IDirect3DRMFrame3
* iface
,
2539 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2541 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, flags
);
2546 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetMaterialOverride(IDirect3DRMFrame3
* iface
,
2547 LPD3DRMMATERIALOVERRIDE override
)
2549 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2551 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, override
);
2556 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetMaterialOverride(IDirect3DRMFrame3
* iface
,
2557 LPD3DRMMATERIALOVERRIDE override
)
2559 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
2561 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, override
);
2566 static const struct IDirect3DRMFrame3Vtbl Direct3DRMFrame3_Vtbl
=
2568 /*** IUnknown methods ***/
2569 IDirect3DRMFrame3Impl_QueryInterface
,
2570 IDirect3DRMFrame3Impl_AddRef
,
2571 IDirect3DRMFrame3Impl_Release
,
2572 /*** IDirect3DRMObject methods ***/
2573 IDirect3DRMFrame3Impl_Clone
,
2574 IDirect3DRMFrame3Impl_AddDestroyCallback
,
2575 IDirect3DRMFrame3Impl_DeleteDestroyCallback
,
2576 IDirect3DRMFrame3Impl_SetAppData
,
2577 IDirect3DRMFrame3Impl_GetAppData
,
2578 IDirect3DRMFrame3Impl_SetName
,
2579 IDirect3DRMFrame3Impl_GetName
,
2580 IDirect3DRMFrame3Impl_GetClassName
,
2581 /*** IDirect3DRMFrame3 methods ***/
2582 IDirect3DRMFrame3Impl_AddChild
,
2583 IDirect3DRMFrame3Impl_AddLight
,
2584 IDirect3DRMFrame3Impl_AddMoveCallback
,
2585 IDirect3DRMFrame3Impl_AddTransform
,
2586 IDirect3DRMFrame3Impl_AddTranslation
,
2587 IDirect3DRMFrame3Impl_AddScale
,
2588 IDirect3DRMFrame3Impl_AddRotation
,
2589 IDirect3DRMFrame3Impl_AddVisual
,
2590 IDirect3DRMFrame3Impl_GetChildren
,
2591 IDirect3DRMFrame3Impl_GetColor
,
2592 IDirect3DRMFrame3Impl_GetLights
,
2593 IDirect3DRMFrame3Impl_GetMaterialMode
,
2594 IDirect3DRMFrame3Impl_GetParent
,
2595 IDirect3DRMFrame3Impl_GetPosition
,
2596 IDirect3DRMFrame3Impl_GetRotation
,
2597 IDirect3DRMFrame3Impl_GetScene
,
2598 IDirect3DRMFrame3Impl_GetSortMode
,
2599 IDirect3DRMFrame3Impl_GetTexture
,
2600 IDirect3DRMFrame3Impl_GetTransform
,
2601 IDirect3DRMFrame3Impl_GetVelocity
,
2602 IDirect3DRMFrame3Impl_GetOrientation
,
2603 IDirect3DRMFrame3Impl_GetVisuals
,
2604 IDirect3DRMFrame3Impl_InverseTransform
,
2605 IDirect3DRMFrame3Impl_Load
,
2606 IDirect3DRMFrame3Impl_LookAt
,
2607 IDirect3DRMFrame3Impl_Move
,
2608 IDirect3DRMFrame3Impl_DeleteChild
,
2609 IDirect3DRMFrame3Impl_DeleteLight
,
2610 IDirect3DRMFrame3Impl_DeleteMoveCallback
,
2611 IDirect3DRMFrame3Impl_DeleteVisual
,
2612 IDirect3DRMFrame3Impl_GetSceneBackground
,
2613 IDirect3DRMFrame3Impl_GetSceneBackgroundDepth
,
2614 IDirect3DRMFrame3Impl_GetSceneFogColor
,
2615 IDirect3DRMFrame3Impl_GetSceneFogEnable
,
2616 IDirect3DRMFrame3Impl_GetSceneFogMode
,
2617 IDirect3DRMFrame3Impl_GetSceneFogParams
,
2618 IDirect3DRMFrame3Impl_SetSceneBackground
,
2619 IDirect3DRMFrame3Impl_SetSceneBackgroundRGB
,
2620 IDirect3DRMFrame3Impl_SetSceneBackgroundDepth
,
2621 IDirect3DRMFrame3Impl_SetSceneBackgroundImage
,
2622 IDirect3DRMFrame3Impl_SetSceneFogEnable
,
2623 IDirect3DRMFrame3Impl_SetSceneFogColor
,
2624 IDirect3DRMFrame3Impl_SetSceneFogMode
,
2625 IDirect3DRMFrame3Impl_SetSceneFogParams
,
2626 IDirect3DRMFrame3Impl_SetColor
,
2627 IDirect3DRMFrame3Impl_SetColorRGB
,
2628 IDirect3DRMFrame3Impl_GetZbufferMode
,
2629 IDirect3DRMFrame3Impl_SetMaterialMode
,
2630 IDirect3DRMFrame3Impl_SetOrientation
,
2631 IDirect3DRMFrame3Impl_SetPosition
,
2632 IDirect3DRMFrame3Impl_SetRotation
,
2633 IDirect3DRMFrame3Impl_SetSortMode
,
2634 IDirect3DRMFrame3Impl_SetTexture
,
2635 IDirect3DRMFrame3Impl_SetVelocity
,
2636 IDirect3DRMFrame3Impl_SetZbufferMode
,
2637 IDirect3DRMFrame3Impl_Transform
,
2638 IDirect3DRMFrame3Impl_GetBox
,
2639 IDirect3DRMFrame3Impl_GetBoxEnable
,
2640 IDirect3DRMFrame3Impl_GetAxes
,
2641 IDirect3DRMFrame3Impl_GetMaterial
,
2642 IDirect3DRMFrame3Impl_GetInheritAxes
,
2643 IDirect3DRMFrame3Impl_GetHierarchyBox
,
2644 IDirect3DRMFrame3Impl_SetBox
,
2645 IDirect3DRMFrame3Impl_SetBoxEnable
,
2646 IDirect3DRMFrame3Impl_SetAxes
,
2647 IDirect3DRMFrame3Impl_SetInheritAxes
,
2648 IDirect3DRMFrame3Impl_SetMaterial
,
2649 IDirect3DRMFrame3Impl_SetQuaternion
,
2650 IDirect3DRMFrame3Impl_RayPick
,
2651 IDirect3DRMFrame3Impl_Save
,
2652 IDirect3DRMFrame3Impl_TransformVectors
,
2653 IDirect3DRMFrame3Impl_InverseTransformVectors
,
2654 IDirect3DRMFrame3Impl_SetTraversalOptions
,
2655 IDirect3DRMFrame3Impl_GetTraversalOptions
,
2656 IDirect3DRMFrame3Impl_SetSceneFogMethod
,
2657 IDirect3DRMFrame3Impl_GetSceneFogMethod
,
2658 IDirect3DRMFrame3Impl_SetMaterialOverride
,
2659 IDirect3DRMFrame3Impl_GetMaterialOverride
2662 static inline IDirect3DRMFrameImpl
*unsafe_impl_from_IDirect3DRMFrame3(IDirect3DRMFrame3
*iface
)
2666 assert(iface
->lpVtbl
== &Direct3DRMFrame3_Vtbl
);
2668 return impl_from_IDirect3DRMFrame3(iface
);
2671 HRESULT
Direct3DRMFrame_create(REFIID riid
, IUnknown
* parent
, IUnknown
** ret_iface
)
2673 IDirect3DRMFrameImpl
* object
;
2676 TRACE("(%s, %p, %p)\n", wine_dbgstr_guid(riid
), parent
, ret_iface
);
2678 object
= HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, sizeof(IDirect3DRMFrameImpl
));
2681 ERR("Out of memory\n");
2682 return E_OUTOFMEMORY
;
2685 object
->IDirect3DRMFrame2_iface
.lpVtbl
= &Direct3DRMFrame2_Vtbl
;
2686 object
->IDirect3DRMFrame3_iface
.lpVtbl
= &Direct3DRMFrame3_Vtbl
;
2689 memcpy(&object
->transform
[0][0], &identity
[0][0], sizeof(D3DRMMATRIX4D
));
2693 IDirect3DRMFrame3
*p
;
2695 hr
= IDirect3DRMFrame_QueryInterface(parent
, &IID_IDirect3DRMFrame3
, (void**)&p
);
2698 IDirect3DRMFrame_Release(parent
);
2699 IDirect3DRMFrame3_AddChild(p
, &object
->IDirect3DRMFrame3_iface
);
2702 hr
= IDirect3DRMFrame3_QueryInterface(&object
->IDirect3DRMFrame3_iface
, riid
, (void**)ret_iface
);
2703 IDirect3DRMFrame3_Release(&object
->IDirect3DRMFrame3_iface
);