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
22 #include "wine/debug.h"
29 #include "d3drm_private.h"
31 WINE_DEFAULT_DEBUG_CHANNEL(d3drm
);
34 IDirect3DRMFrame2 IDirect3DRMFrame2_iface
;
35 IDirect3DRMFrame3 IDirect3DRMFrame3_iface
;
38 ULONG children_capacity
;
39 IDirect3DRMFrame3
** children
;
41 ULONG visuals_capacity
;
42 IDirect3DRMVisual
** visuals
;
43 } IDirect3DRMFrameImpl
;
45 static inline IDirect3DRMFrameImpl
*impl_from_IDirect3DRMFrame2(IDirect3DRMFrame2
*iface
)
47 return CONTAINING_RECORD(iface
, IDirect3DRMFrameImpl
, IDirect3DRMFrame2_iface
);
50 static inline IDirect3DRMFrameImpl
*impl_from_IDirect3DRMFrame3(IDirect3DRMFrame3
*iface
)
52 return CONTAINING_RECORD(iface
, IDirect3DRMFrameImpl
, IDirect3DRMFrame3_iface
);
55 static inline IDirect3DRMFrameImpl
*unsafe_impl_from_IDirect3DRMFrame2(IDirect3DRMFrame2
*iface
);
57 /*** IUnknown methods ***/
58 static HRESULT WINAPI
IDirect3DRMFrame2Impl_QueryInterface(IDirect3DRMFrame2
* iface
,
59 REFIID riid
, void** object
)
61 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
63 TRACE("(%p/%p)->(%s, %p)\n", iface
, This
, debugstr_guid(riid
), object
);
67 if(IsEqualGUID(riid
, &IID_IUnknown
) ||
68 IsEqualGUID(riid
, &IID_IDirect3DRMFrame
) ||
69 IsEqualGUID(riid
, &IID_IDirect3DRMFrame2
))
71 *object
= &This
->IDirect3DRMFrame2_iface
;
73 else if(IsEqualGUID(riid
, &IID_IDirect3DRMFrame3
))
75 *object
= &This
->IDirect3DRMFrame3_iface
;
79 FIXME("interface %s not implemented\n", debugstr_guid(riid
));
83 IDirect3DRMFrame2_AddRef(iface
);
87 static ULONG WINAPI
IDirect3DRMFrame2Impl_AddRef(IDirect3DRMFrame2
* iface
)
89 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
90 ULONG ref
= InterlockedIncrement(&This
->ref
);
92 TRACE("(%p)->(): new ref = %d\n", This
, ref
);
97 static ULONG WINAPI
IDirect3DRMFrame2Impl_Release(IDirect3DRMFrame2
* iface
)
99 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
100 ULONG ref
= InterlockedDecrement(&This
->ref
);
103 TRACE("(%p)->(): new ref = %d\n", This
, ref
);
107 for (i
= 0; i
< This
->nb_children
; i
++)
108 IDirect3DRMFrame3_Release(This
->children
[i
]);
109 HeapFree(GetProcessHeap(), 0, This
->children
);
110 HeapFree(GetProcessHeap(), 0, This
);
116 /*** IDirect3DRMObject methods ***/
117 static HRESULT WINAPI
IDirect3DRMFrame2Impl_Clone(IDirect3DRMFrame2
* iface
,
118 LPUNKNOWN unkwn
, REFIID riid
,
121 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
123 FIXME("(%p/%p)->(%p, %s, %p): stub\n", iface
, This
, unkwn
, debugstr_guid(riid
), object
);
128 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddDestroyCallback(IDirect3DRMFrame2
* iface
,
129 D3DRMOBJECTCALLBACK cb
,
132 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
134 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
139 static HRESULT WINAPI
IDirect3DRMFrame2Impl_DeleteDestroyCallback(IDirect3DRMFrame2
* iface
,
140 D3DRMOBJECTCALLBACK cb
,
143 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
145 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
150 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetAppData(IDirect3DRMFrame2
* iface
,
153 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
155 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, data
);
160 static DWORD WINAPI
IDirect3DRMFrame2Impl_GetAppData(IDirect3DRMFrame2
* iface
)
162 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
164 FIXME("(%p/%p)->(): stub\n", iface
, This
);
169 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetName(IDirect3DRMFrame2
* iface
, LPCSTR name
)
171 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
173 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, name
);
178 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetName(IDirect3DRMFrame2
* iface
,
179 LPDWORD size
, LPSTR name
)
181 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
183 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, size
, name
);
188 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetClassName(IDirect3DRMFrame2
* iface
,
189 LPDWORD size
, LPSTR name
)
191 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
193 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, size
, name
);
198 /*** IDirect3DRMFrame methods ***/
199 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddChild(IDirect3DRMFrame2
* iface
,
200 LPDIRECT3DRMFRAME child
)
202 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
203 IDirect3DRMFrameImpl
*frame
;
205 TRACE("(%p/%p)->(%p)\n", iface
, This
, child
);
207 frame
= unsafe_impl_from_IDirect3DRMFrame2((LPDIRECT3DRMFRAME2
)child
);
210 return D3DRMERR_BADOBJECT
;
212 return IDirect3DRMFrame3_AddChild(&This
->IDirect3DRMFrame3_iface
, &frame
->IDirect3DRMFrame3_iface
);
215 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddLight(IDirect3DRMFrame2
* iface
,
216 LPDIRECT3DRMLIGHT light
)
218 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
220 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, light
);
225 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddMoveCallback(IDirect3DRMFrame2
* iface
,
226 D3DRMFRAMEMOVECALLBACK cb
, VOID
*arg
)
228 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
230 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, cb
, arg
);
235 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddTransform(IDirect3DRMFrame2
* iface
,
236 D3DRMCOMBINETYPE type
,
237 D3DRMMATRIX4D matrix
)
239 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
241 FIXME("(%p/%p)->(%u,%p): stub\n", iface
, This
, type
, matrix
);
246 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddTranslation(IDirect3DRMFrame2
* iface
,
247 D3DRMCOMBINETYPE type
,
248 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
)
250 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
252 FIXME("(%p/%p)->(%u,%f,%f,%f): stub\n", iface
, This
, type
, x
, y
, z
);
257 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddScale(IDirect3DRMFrame2
* iface
,
258 D3DRMCOMBINETYPE type
,
259 D3DVALUE sx
, D3DVALUE sy
, D3DVALUE sz
)
261 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
263 FIXME("(%p/%p)->(%u,%f,%f,%f): stub\n", iface
, This
, type
, sx
, sy
, sz
);
268 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddRotation(IDirect3DRMFrame2
* iface
,
269 D3DRMCOMBINETYPE type
,
270 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
,
273 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
275 FIXME("(%p/%p)->(%u,%f,%f,%f,%f): stub\n", iface
, This
, type
, x
, y
, z
, theta
);
280 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddVisual(IDirect3DRMFrame2
* iface
,
281 LPDIRECT3DRMVISUAL vis
)
283 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
285 TRACE("(%p/%p)->(%p)\n", iface
, This
, vis
);
287 return IDirect3DRMFrame3_AddVisual(&This
->IDirect3DRMFrame3_iface
, (LPUNKNOWN
)vis
);
290 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetChildren(IDirect3DRMFrame2
* iface
,
291 LPDIRECT3DRMFRAMEARRAY
*children
)
293 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
295 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, children
);
300 static D3DCOLOR WINAPI
IDirect3DRMFrame2Impl_GetColor(IDirect3DRMFrame2
* iface
)
302 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
304 FIXME("(%p/%p)->(): stub\n", iface
, This
);
309 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetLights(IDirect3DRMFrame2
* iface
,
310 LPDIRECT3DRMLIGHTARRAY
*lights
)
312 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
314 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, lights
);
319 static D3DRMMATERIALMODE WINAPI
IDirect3DRMFrame2Impl_GetMaterialMode(IDirect3DRMFrame2
* iface
)
321 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
323 FIXME("(%p/%p)->(): stub\n", iface
, This
);
325 return D3DRMMATERIAL_FROMPARENT
;
328 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetParent(IDirect3DRMFrame2
* iface
,
329 LPDIRECT3DRMFRAME
* frame
)
331 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
333 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, frame
);
338 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetPosition(IDirect3DRMFrame2
* iface
,
339 LPDIRECT3DRMFRAME reference
,
340 LPD3DVECTOR return_position
)
342 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
344 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, reference
, return_position
);
349 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetRotation(IDirect3DRMFrame2
* iface
,
350 LPDIRECT3DRMFRAME reference
,
351 LPD3DVECTOR axis
, LPD3DVALUE return_theta
)
353 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
355 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, reference
, axis
, return_theta
);
360 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetScene(IDirect3DRMFrame2
* iface
,
361 LPDIRECT3DRMFRAME
* frame
)
363 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
365 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, frame
);
370 static D3DRMSORTMODE WINAPI
IDirect3DRMFrame2Impl_GetSortMode(IDirect3DRMFrame2
* iface
)
372 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
374 FIXME("(%p/%p)->(): stub\n", iface
, This
);
376 return D3DRMSORT_FROMPARENT
;
379 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetTexture(IDirect3DRMFrame2
* iface
,
380 LPDIRECT3DRMTEXTURE
* tex
)
382 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
384 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, tex
);
389 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetTransform(IDirect3DRMFrame2
* iface
,
390 D3DRMMATRIX4D return_matrix
)
392 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
394 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, return_matrix
);
399 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetVelocity(IDirect3DRMFrame2
* iface
,
400 LPDIRECT3DRMFRAME reference
,
401 LPD3DVECTOR return_velocity
,
404 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
406 FIXME("(%p/%p)->(%p,%p,%d): stub\n", iface
, This
, reference
, return_velocity
, with_rotation
);
411 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetOrientation(IDirect3DRMFrame2
* iface
,
412 LPDIRECT3DRMFRAME reference
,
413 LPD3DVECTOR dir
, LPD3DVECTOR up
)
415 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
417 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, reference
, dir
, up
);
422 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetVisuals(IDirect3DRMFrame2
* iface
,
423 LPDIRECT3DRMVISUALARRAY
*visuals
)
425 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
427 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, visuals
);
432 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetTextureTopology(IDirect3DRMFrame2
* iface
,
433 BOOL
*wrap_u
, BOOL
*wrap_v
)
435 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
437 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, wrap_u
, wrap_v
);
442 static HRESULT WINAPI
IDirect3DRMFrame2Impl_InverseTransform(IDirect3DRMFrame2
* iface
,
443 D3DVECTOR
*d
, D3DVECTOR
*s
)
445 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
447 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, d
, s
);
452 static HRESULT WINAPI
IDirect3DRMFrame2Impl_Load(IDirect3DRMFrame2
* iface
, LPVOID filename
,
453 LPVOID name
, D3DRMLOADOPTIONS loadflags
,
454 D3DRMLOADTEXTURECALLBACK cb
, LPVOID lpArg
)
456 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
458 FIXME("(%p/%p)->(%p,%p,%u,%p,%p): stub\n", iface
, This
, filename
, name
, loadflags
, cb
, lpArg
);
463 static HRESULT WINAPI
IDirect3DRMFrame2Impl_LookAt(IDirect3DRMFrame2
* iface
,
464 LPDIRECT3DRMFRAME target
,
465 LPDIRECT3DRMFRAME reference
,
466 D3DRMFRAMECONSTRAINT constraint
)
468 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
470 FIXME("(%p/%p)->(%p,%p,%u): stub\n", iface
, This
, target
, reference
, constraint
);
475 static HRESULT WINAPI
IDirect3DRMFrame2Impl_Move(IDirect3DRMFrame2
* iface
, D3DVALUE delta
)
477 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
479 FIXME("(%p/%p)->(%f): stub\n", iface
, This
, delta
);
484 static HRESULT WINAPI
IDirect3DRMFrame2Impl_DeleteChild(IDirect3DRMFrame2
* iface
,
485 LPDIRECT3DRMFRAME frame
)
487 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
488 IDirect3DRMFrameImpl
*child
;
490 TRACE("(%p/%p)->(%p)\n", iface
, This
, frame
);
492 child
= unsafe_impl_from_IDirect3DRMFrame2((LPDIRECT3DRMFRAME2
)frame
);
495 return D3DRMERR_BADOBJECT
;
497 return IDirect3DRMFrame3_DeleteChild(&This
->IDirect3DRMFrame3_iface
, &child
->IDirect3DRMFrame3_iface
);
500 static HRESULT WINAPI
IDirect3DRMFrame2Impl_DeleteLight(IDirect3DRMFrame2
* iface
,
501 LPDIRECT3DRMLIGHT light
)
503 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
505 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, light
);
510 static HRESULT WINAPI
IDirect3DRMFrame2Impl_DeleteMoveCallback(IDirect3DRMFrame2
* iface
,
511 D3DRMFRAMEMOVECALLBACK cb
, VOID
*arg
)
513 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
515 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, cb
, arg
);
520 static HRESULT WINAPI
IDirect3DRMFrame2Impl_DeleteVisual(IDirect3DRMFrame2
* iface
,
521 LPDIRECT3DRMVISUAL vis
)
523 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
525 TRACE("(%p/%p)->(%p)\n", iface
, This
, vis
);
527 return IDirect3DRMFrame3_DeleteVisual(&This
->IDirect3DRMFrame3_iface
, (LPUNKNOWN
)vis
);
530 static D3DCOLOR WINAPI
IDirect3DRMFrame2Impl_GetSceneBackground(IDirect3DRMFrame2
* iface
)
532 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
534 FIXME("(%p/%p)->(): stub\n", iface
, This
);
539 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetSceneBackgroundDepth(IDirect3DRMFrame2
* iface
,
540 LPDIRECTDRAWSURFACE
* surface
)
542 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
544 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, surface
);
549 static D3DCOLOR WINAPI
IDirect3DRMFrame2Impl_GetSceneFogColor(IDirect3DRMFrame2
* iface
)
551 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
553 FIXME("(%p/%p)->(): stub\n", iface
, This
);
558 static BOOL WINAPI
IDirect3DRMFrame2Impl_GetSceneFogEnable(IDirect3DRMFrame2
* iface
)
560 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
562 FIXME("(%p/%p)->(): stub\n", iface
, This
);
567 static D3DRMFOGMODE WINAPI
IDirect3DRMFrame2Impl_GetSceneFogMode(IDirect3DRMFrame2
* iface
)
569 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
571 FIXME("(%p/%p)->(): stub\n", iface
, This
);
573 return D3DRMFOG_LINEAR
;
576 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetSceneFogParams(IDirect3DRMFrame2
* iface
,
577 D3DVALUE
*return_start
,
578 D3DVALUE
*return_end
,
579 D3DVALUE
*return_density
)
581 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
583 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, return_start
, return_end
, return_density
);
588 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneBackground(IDirect3DRMFrame2
* iface
,
591 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
593 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, color
);
598 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneBackgroundRGB(IDirect3DRMFrame2
* iface
,
599 D3DVALUE red
, D3DVALUE green
,
602 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
604 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface
, This
, red
, green
, blue
);
609 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneBackgroundDepth(IDirect3DRMFrame2
* iface
,
610 LPDIRECTDRAWSURFACE surface
)
612 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
614 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, surface
);
619 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneBackgroundImage(IDirect3DRMFrame2
* iface
,
620 LPDIRECT3DRMTEXTURE texture
)
622 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
624 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, texture
);
629 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneFogEnable(IDirect3DRMFrame2
* iface
, BOOL enable
)
631 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
633 FIXME("(%p/%p)->(%d): stub\n", iface
, This
, enable
);
638 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneFogColor(IDirect3DRMFrame2
* iface
,
641 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
643 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, color
);
648 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneFogMode(IDirect3DRMFrame2
* iface
,
651 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
653 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
658 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSceneFogParams(IDirect3DRMFrame2
* iface
,
659 D3DVALUE start
, D3DVALUE end
,
662 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
664 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface
, This
, start
, end
, density
);
669 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetColor(IDirect3DRMFrame2
* iface
, D3DCOLOR color
)
671 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
673 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, color
);
678 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetColorRGB(IDirect3DRMFrame2
* iface
, D3DVALUE red
,
679 D3DVALUE green
, D3DVALUE blue
)
681 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
683 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface
, This
, red
, green
, blue
);
688 static D3DRMZBUFFERMODE WINAPI
IDirect3DRMFrame2Impl_GetZbufferMode(IDirect3DRMFrame2
* iface
)
690 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
692 FIXME("(%p/%p)->(): stub\n", iface
, This
);
694 return D3DRMZBUFFER_FROMPARENT
;
697 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetMaterialMode(IDirect3DRMFrame2
* iface
,
698 D3DRMMATERIALMODE mode
)
700 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
702 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
707 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetOrientation(IDirect3DRMFrame2
* iface
,
708 LPDIRECT3DRMFRAME reference
,
709 D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
,
710 D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
)
712 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
714 FIXME("(%p/%p)->(%p,%f,%f,%f,%f,%f,%f): stub\n", iface
, This
, reference
,
715 dx
, dy
, dz
, ux
, uy
, uz
);
720 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetPosition(IDirect3DRMFrame2
* iface
,
721 LPDIRECT3DRMFRAME reference
,
722 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
)
724 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
726 FIXME("(%p/%p)->(%p,%f,%f,%f): stub\n", iface
, This
, reference
, x
, y
, z
);
731 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetRotation(IDirect3DRMFrame2
* iface
,
732 LPDIRECT3DRMFRAME reference
,
733 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
,
736 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
738 FIXME("(%p/%p)->(%p,%f,%f,%f,%f): stub\n", iface
, This
, reference
, x
, y
, z
, theta
);
743 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetSortMode(IDirect3DRMFrame2
* iface
,
746 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
748 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
753 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetTexture(IDirect3DRMFrame2
* iface
,
754 LPDIRECT3DRMTEXTURE texture
)
756 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
758 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, texture
);
763 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetTextureTopology(IDirect3DRMFrame2
* iface
,
764 BOOL wrap_u
, BOOL wrap_v
)
766 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
768 FIXME("(%p/%p)->(%d,%d): stub\n", iface
, This
, wrap_u
, wrap_v
);
773 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetVelocity(IDirect3DRMFrame2
* iface
,
774 LPDIRECT3DRMFRAME reference
,
775 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
,
778 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
780 FIXME("(%p/%p)->(%p,%f,%f,%f,%d): stub\n", iface
, This
, reference
, x
, y
, z
, with_rotation
);
785 static HRESULT WINAPI
IDirect3DRMFrame2Impl_SetZbufferMode(IDirect3DRMFrame2
* iface
,
786 D3DRMZBUFFERMODE mode
)
788 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
790 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
795 static HRESULT WINAPI
IDirect3DRMFrame2Impl_Transform(IDirect3DRMFrame2
* iface
, D3DVECTOR
*d
,
798 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
800 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, d
, s
);
805 /*** IDirect3DRMFrame2 methods ***/
806 static HRESULT WINAPI
IDirect3DRMFrame2Impl_AddMoveCallback2(IDirect3DRMFrame2
* iface
,
807 D3DRMFRAMEMOVECALLBACK cb
, VOID
*arg
,
810 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
812 FIXME("(%p/%p)->(%p,%p,%u): stub\n", iface
, This
, cb
, arg
, flags
);
817 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetBox(IDirect3DRMFrame2
* iface
, LPD3DRMBOX box
)
819 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
821 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, box
);
826 static BOOL WINAPI
IDirect3DRMFrame2Impl_GetBoxEnable(IDirect3DRMFrame2
* iface
)
828 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
830 FIXME("(%p/%p)->(): stub\n", iface
, This
);
835 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetAxes(IDirect3DRMFrame2
* iface
,
836 LPD3DVECTOR dir
, LPD3DVECTOR up
)
838 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
840 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, dir
, up
);
845 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetMaterial(IDirect3DRMFrame2
* iface
,
846 LPDIRECT3DRMMATERIAL
*material
)
848 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
850 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, material
);
855 static BOOL WINAPI
IDirect3DRMFrame2Impl_GetInheritAxes(IDirect3DRMFrame2
* iface
)
857 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
859 FIXME("(%p/%p)->(): stub\n", iface
, This
);
864 static HRESULT WINAPI
IDirect3DRMFrame2Impl_GetHierarchyBox(IDirect3DRMFrame2
* iface
,
867 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame2(iface
);
869 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, box
);
874 static const struct IDirect3DRMFrame2Vtbl Direct3DRMFrame2_Vtbl
=
876 /*** IUnknown methods ***/
877 IDirect3DRMFrame2Impl_QueryInterface
,
878 IDirect3DRMFrame2Impl_AddRef
,
879 IDirect3DRMFrame2Impl_Release
,
880 /*** IDirect3DRMObject methods ***/
881 IDirect3DRMFrame2Impl_Clone
,
882 IDirect3DRMFrame2Impl_AddDestroyCallback
,
883 IDirect3DRMFrame2Impl_DeleteDestroyCallback
,
884 IDirect3DRMFrame2Impl_SetAppData
,
885 IDirect3DRMFrame2Impl_GetAppData
,
886 IDirect3DRMFrame2Impl_SetName
,
887 IDirect3DRMFrame2Impl_GetName
,
888 IDirect3DRMFrame2Impl_GetClassName
,
889 /*** IDirect3DRMFrame methods ***/
890 IDirect3DRMFrame2Impl_AddChild
,
891 IDirect3DRMFrame2Impl_AddLight
,
892 IDirect3DRMFrame2Impl_AddMoveCallback
,
893 IDirect3DRMFrame2Impl_AddTransform
,
894 IDirect3DRMFrame2Impl_AddTranslation
,
895 IDirect3DRMFrame2Impl_AddScale
,
896 IDirect3DRMFrame2Impl_AddRotation
,
897 IDirect3DRMFrame2Impl_AddVisual
,
898 IDirect3DRMFrame2Impl_GetChildren
,
899 IDirect3DRMFrame2Impl_GetColor
,
900 IDirect3DRMFrame2Impl_GetLights
,
901 IDirect3DRMFrame2Impl_GetMaterialMode
,
902 IDirect3DRMFrame2Impl_GetParent
,
903 IDirect3DRMFrame2Impl_GetPosition
,
904 IDirect3DRMFrame2Impl_GetRotation
,
905 IDirect3DRMFrame2Impl_GetScene
,
906 IDirect3DRMFrame2Impl_GetSortMode
,
907 IDirect3DRMFrame2Impl_GetTexture
,
908 IDirect3DRMFrame2Impl_GetTransform
,
909 IDirect3DRMFrame2Impl_GetVelocity
,
910 IDirect3DRMFrame2Impl_GetOrientation
,
911 IDirect3DRMFrame2Impl_GetVisuals
,
912 IDirect3DRMFrame2Impl_GetTextureTopology
,
913 IDirect3DRMFrame2Impl_InverseTransform
,
914 IDirect3DRMFrame2Impl_Load
,
915 IDirect3DRMFrame2Impl_LookAt
,
916 IDirect3DRMFrame2Impl_Move
,
917 IDirect3DRMFrame2Impl_DeleteChild
,
918 IDirect3DRMFrame2Impl_DeleteLight
,
919 IDirect3DRMFrame2Impl_DeleteMoveCallback
,
920 IDirect3DRMFrame2Impl_DeleteVisual
,
921 IDirect3DRMFrame2Impl_GetSceneBackground
,
922 IDirect3DRMFrame2Impl_GetSceneBackgroundDepth
,
923 IDirect3DRMFrame2Impl_GetSceneFogColor
,
924 IDirect3DRMFrame2Impl_GetSceneFogEnable
,
925 IDirect3DRMFrame2Impl_GetSceneFogMode
,
926 IDirect3DRMFrame2Impl_GetSceneFogParams
,
927 IDirect3DRMFrame2Impl_SetSceneBackground
,
928 IDirect3DRMFrame2Impl_SetSceneBackgroundRGB
,
929 IDirect3DRMFrame2Impl_SetSceneBackgroundDepth
,
930 IDirect3DRMFrame2Impl_SetSceneBackgroundImage
,
931 IDirect3DRMFrame2Impl_SetSceneFogEnable
,
932 IDirect3DRMFrame2Impl_SetSceneFogColor
,
933 IDirect3DRMFrame2Impl_SetSceneFogMode
,
934 IDirect3DRMFrame2Impl_SetSceneFogParams
,
935 IDirect3DRMFrame2Impl_SetColor
,
936 IDirect3DRMFrame2Impl_SetColorRGB
,
937 IDirect3DRMFrame2Impl_GetZbufferMode
,
938 IDirect3DRMFrame2Impl_SetMaterialMode
,
939 IDirect3DRMFrame2Impl_SetOrientation
,
940 IDirect3DRMFrame2Impl_SetPosition
,
941 IDirect3DRMFrame2Impl_SetRotation
,
942 IDirect3DRMFrame2Impl_SetSortMode
,
943 IDirect3DRMFrame2Impl_SetTexture
,
944 IDirect3DRMFrame2Impl_SetTextureTopology
,
945 IDirect3DRMFrame2Impl_SetVelocity
,
946 IDirect3DRMFrame2Impl_SetZbufferMode
,
947 IDirect3DRMFrame2Impl_Transform
,
948 /*** IDirect3DRMFrame2 methods ***/
949 IDirect3DRMFrame2Impl_AddMoveCallback2
,
950 IDirect3DRMFrame2Impl_GetBox
,
951 IDirect3DRMFrame2Impl_GetBoxEnable
,
952 IDirect3DRMFrame2Impl_GetAxes
,
953 IDirect3DRMFrame2Impl_GetMaterial
,
954 IDirect3DRMFrame2Impl_GetInheritAxes
,
955 IDirect3DRMFrame2Impl_GetHierarchyBox
958 /*** IUnknown methods ***/
959 static HRESULT WINAPI
IDirect3DRMFrame3Impl_QueryInterface(IDirect3DRMFrame3
* iface
,
960 REFIID riid
, void** object
)
962 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
963 return IDirect3DRMFrame_QueryInterface(&This
->IDirect3DRMFrame2_iface
, riid
, object
);
966 static ULONG WINAPI
IDirect3DRMFrame3Impl_AddRef(IDirect3DRMFrame3
* iface
)
968 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
969 return IDirect3DRMFrame2_AddRef(&This
->IDirect3DRMFrame2_iface
);
972 static ULONG WINAPI
IDirect3DRMFrame3Impl_Release(IDirect3DRMFrame3
* iface
)
974 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
975 return IDirect3DRMFrame2_Release(&This
->IDirect3DRMFrame2_iface
);
978 /*** IDirect3DRMObject methods ***/
979 static HRESULT WINAPI
IDirect3DRMFrame3Impl_Clone(IDirect3DRMFrame3
* iface
,
980 LPUNKNOWN unkwn
, REFIID riid
,
983 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
985 FIXME("(%p/%p)->(%p, %s, %p): stub\n", iface
, This
, unkwn
, debugstr_guid(riid
), object
);
990 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddDestroyCallback(IDirect3DRMFrame3
* iface
,
991 D3DRMOBJECTCALLBACK cb
,
994 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
996 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
1001 static HRESULT WINAPI
IDirect3DRMFrame3Impl_DeleteDestroyCallback(IDirect3DRMFrame3
* iface
,
1002 D3DRMOBJECTCALLBACK cb
,
1005 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1007 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
1012 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetAppData(IDirect3DRMFrame3
* iface
,
1015 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1017 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, data
);
1022 static DWORD WINAPI
IDirect3DRMFrame3Impl_GetAppData(IDirect3DRMFrame3
* iface
)
1024 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1026 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1031 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetName(IDirect3DRMFrame3
* iface
, LPCSTR name
)
1033 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1035 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, name
);
1040 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetName(IDirect3DRMFrame3
* iface
,
1041 LPDWORD size
, LPSTR name
)
1043 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1045 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, size
, name
);
1050 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetClassName(IDirect3DRMFrame3
* iface
,
1051 LPDWORD size
, LPSTR name
)
1053 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1055 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, size
, name
);
1060 /*** IDirect3DRMFrame methods ***/
1061 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddChild(IDirect3DRMFrame3
* iface
,
1062 LPDIRECT3DRMFRAME3 child
)
1064 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1066 IDirect3DRMFrame3
** children
;
1068 TRACE("(%p/%p)->(%p)\n", iface
, This
, child
);
1071 return D3DRMERR_BADOBJECT
;
1073 /* Check if already existing and return gracefully without increasing ref count */
1074 for (i
= 0; i
< This
->nb_children
; i
++)
1075 if (This
->children
[i
] == child
)
1078 if ((This
->nb_children
+ 1) > This
->children_capacity
)
1082 if (!This
->children_capacity
)
1085 children
= HeapAlloc(GetProcessHeap(), 0, new_capacity
* sizeof(IDirect3DRMFrame3
*));
1089 new_capacity
= This
->children_capacity
* 2;
1090 children
= HeapReAlloc(GetProcessHeap(), 0, This
->children
, new_capacity
* sizeof(IDirect3DRMFrame3
*));
1094 return E_OUTOFMEMORY
;
1096 This
->children_capacity
= new_capacity
;
1097 This
->children
= children
;
1100 This
->children
[This
->nb_children
++] = child
;
1101 IDirect3DRMFrame3_AddRef(child
);
1106 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddLight(IDirect3DRMFrame3
* iface
,
1107 LPDIRECT3DRMLIGHT light
)
1109 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1111 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, light
);
1116 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddMoveCallback(IDirect3DRMFrame3
* iface
,
1117 D3DRMFRAME3MOVECALLBACK cb
, VOID
*arg
,
1120 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1122 FIXME("(%p/%p)->(%p,%p,%u): stub\n", iface
, This
, cb
, arg
, flags
);
1127 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddTransform(IDirect3DRMFrame3
* iface
,
1128 D3DRMCOMBINETYPE type
,
1129 D3DRMMATRIX4D matrix
)
1131 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1133 FIXME("(%p/%p)->(%u,%p): stub\n", iface
, This
, type
, matrix
);
1138 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddTranslation(IDirect3DRMFrame3
* iface
,
1139 D3DRMCOMBINETYPE type
,
1140 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
)
1142 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1144 FIXME("(%p/%p)->(%u,%f,%f,%f): stub\n", iface
, This
, type
, x
, y
, z
);
1149 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddScale(IDirect3DRMFrame3
* iface
,
1150 D3DRMCOMBINETYPE type
,
1151 D3DVALUE sx
, D3DVALUE sy
, D3DVALUE sz
)
1153 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1155 FIXME("(%p/%p)->(%u,%f,%f,%f): stub\n", iface
, This
, type
, sx
, sy
, sz
);
1160 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddRotation(IDirect3DRMFrame3
* iface
,
1161 D3DRMCOMBINETYPE type
,
1162 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
,
1165 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1167 FIXME("(%p/%p)->(%u,%f,%f,%f,%f): stub\n", iface
, This
, type
, x
, y
, z
, theta
);
1172 static HRESULT WINAPI
IDirect3DRMFrame3Impl_AddVisual(IDirect3DRMFrame3
* iface
, LPUNKNOWN vis
)
1174 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1176 IDirect3DRMVisual
** visuals
;
1178 TRACE("(%p/%p)->(%p)\n", iface
, This
, vis
);
1181 return D3DRMERR_BADOBJECT
;
1183 /* Check if already existing and return gracefully without increasing ref count */
1184 for (i
= 0; i
< This
->nb_visuals
; i
++)
1185 if (This
->visuals
[i
] == (IDirect3DRMVisual
*)vis
)
1188 if ((This
->nb_visuals
+ 1) > This
->visuals_capacity
)
1192 if (!This
->visuals_capacity
)
1195 visuals
= HeapAlloc(GetProcessHeap(), 0, new_capacity
* sizeof(IDirect3DRMVisual
*));
1199 new_capacity
= This
->visuals_capacity
* 2;
1200 visuals
= HeapReAlloc(GetProcessHeap(), 0, This
->visuals
, new_capacity
* sizeof(IDirect3DRMVisual
*));
1204 return E_OUTOFMEMORY
;
1206 This
->visuals_capacity
= new_capacity
;
1207 This
->visuals
= visuals
;
1210 This
->visuals
[This
->nb_visuals
++] = (IDirect3DRMVisual
*)vis
;
1211 IDirect3DRMVisual_AddRef(vis
);
1216 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetChildren(IDirect3DRMFrame3
* iface
,
1217 LPDIRECT3DRMFRAMEARRAY
*children
)
1219 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1221 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, children
);
1226 static D3DCOLOR WINAPI
IDirect3DRMFrame3Impl_GetColor(IDirect3DRMFrame3
* iface
)
1228 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1230 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1235 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetLights(IDirect3DRMFrame3
* iface
,
1236 LPDIRECT3DRMLIGHTARRAY
*lights
)
1238 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1240 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, lights
);
1245 static D3DRMMATERIALMODE WINAPI
IDirect3DRMFrame3Impl_GetMaterialMode(IDirect3DRMFrame3
* iface
)
1247 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1249 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1251 return D3DRMMATERIAL_FROMPARENT
;
1254 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetParent(IDirect3DRMFrame3
* iface
,
1255 LPDIRECT3DRMFRAME3
* frame
)
1257 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1259 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, frame
);
1264 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetPosition(IDirect3DRMFrame3
* iface
,
1265 LPDIRECT3DRMFRAME3 reference
,
1266 LPD3DVECTOR return_position
)
1268 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1270 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, reference
, return_position
);
1275 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetRotation(IDirect3DRMFrame3
* iface
,
1276 LPDIRECT3DRMFRAME3 reference
,
1277 LPD3DVECTOR axis
, LPD3DVALUE return_theta
)
1279 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1281 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, reference
, axis
, return_theta
);
1286 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetScene(IDirect3DRMFrame3
* iface
,
1287 LPDIRECT3DRMFRAME3
* frame
)
1289 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1291 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, frame
);
1296 static D3DRMSORTMODE WINAPI
IDirect3DRMFrame3Impl_GetSortMode(IDirect3DRMFrame3
* iface
)
1298 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1300 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1302 return D3DRMSORT_FROMPARENT
;
1305 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetTexture(IDirect3DRMFrame3
* iface
,
1306 LPDIRECT3DRMTEXTURE3
* tex
)
1308 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1310 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, tex
);
1315 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetTransform(IDirect3DRMFrame3
* iface
,
1316 LPDIRECT3DRMFRAME3 reference
,
1317 D3DRMMATRIX4D return_matrix
)
1319 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1321 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, reference
, return_matrix
);
1326 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetVelocity(IDirect3DRMFrame3
* iface
,
1327 LPDIRECT3DRMFRAME3 reference
,
1328 LPD3DVECTOR return_velocity
,
1331 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1333 FIXME("(%p/%p)->(%p,%p,%d): stub\n", iface
, This
, reference
, return_velocity
, with_rotation
);
1338 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetOrientation(IDirect3DRMFrame3
* iface
,
1339 LPDIRECT3DRMFRAME3 reference
,
1340 LPD3DVECTOR dir
, LPD3DVECTOR up
)
1342 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1344 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, reference
, dir
, up
);
1349 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetVisuals(IDirect3DRMFrame3
* iface
, LPDWORD num
,
1352 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1354 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, num
, visuals
);
1359 static HRESULT WINAPI
IDirect3DRMFrame3Impl_InverseTransform(IDirect3DRMFrame3
* iface
,
1360 D3DVECTOR
*d
, D3DVECTOR
*s
)
1362 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1364 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, d
, s
);
1369 static HRESULT WINAPI
IDirect3DRMFrame3Impl_Load(IDirect3DRMFrame3
* iface
, LPVOID filename
,
1370 LPVOID name
, D3DRMLOADOPTIONS loadflags
,
1371 D3DRMLOADTEXTURE3CALLBACK cb
, LPVOID lpArg
)
1373 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1375 FIXME("(%p/%p)->(%p,%p,%u,%p,%p): stub\n", iface
, This
, filename
, name
, loadflags
, cb
, lpArg
);
1380 static HRESULT WINAPI
IDirect3DRMFrame3Impl_LookAt(IDirect3DRMFrame3
* iface
,
1381 LPDIRECT3DRMFRAME3 target
,
1382 LPDIRECT3DRMFRAME3 reference
,
1383 D3DRMFRAMECONSTRAINT constraint
)
1385 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1387 FIXME("(%p/%p)->(%p,%p,%u): stub\n", iface
, This
, target
, reference
, constraint
);
1392 static HRESULT WINAPI
IDirect3DRMFrame3Impl_Move(IDirect3DRMFrame3
* iface
, D3DVALUE delta
)
1394 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1396 FIXME("(%p/%p)->(%f): stub\n", iface
, This
, delta
);
1401 static HRESULT WINAPI
IDirect3DRMFrame3Impl_DeleteChild(IDirect3DRMFrame3
* iface
,
1402 LPDIRECT3DRMFRAME3 frame
)
1404 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1407 TRACE("(%p/%p)->(%p)\n", iface
, This
, frame
);
1410 return D3DRMERR_BADOBJECT
;
1412 /* Check if child exists */
1413 for (i
= 0; i
< This
->nb_children
; i
++)
1414 if (This
->children
[i
] == frame
)
1417 if (i
== This
->nb_children
)
1418 return D3DRMERR_BADVALUE
;
1420 memmove(This
->children
+ i
, This
->children
+ i
+ 1, sizeof(IDirect3DRMFrame3
*) * (This
->nb_children
- 1 - i
));
1421 IDirect3DRMFrame3_Release(frame
);
1422 This
->nb_children
--;
1427 static HRESULT WINAPI
IDirect3DRMFrame3Impl_DeleteLight(IDirect3DRMFrame3
* iface
,
1428 LPDIRECT3DRMLIGHT light
)
1430 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1432 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, light
);
1437 static HRESULT WINAPI
IDirect3DRMFrame3Impl_DeleteMoveCallback(IDirect3DRMFrame3
* iface
,
1438 D3DRMFRAME3MOVECALLBACK cb
,
1441 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1443 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, cb
, arg
);
1448 static HRESULT WINAPI
IDirect3DRMFrame3Impl_DeleteVisual(IDirect3DRMFrame3
* iface
, LPUNKNOWN vis
)
1450 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1453 TRACE("(%p/%p)->(%p)\n", iface
, This
, vis
);
1456 return D3DRMERR_BADOBJECT
;
1458 /* Check if visual exists */
1459 for (i
= 0; i
< This
->nb_visuals
; i
++)
1460 if (This
->visuals
[i
] == (IDirect3DRMVisual
*)vis
)
1463 if (i
== This
->nb_visuals
)
1464 return D3DRMERR_BADVALUE
;
1466 memmove(This
->visuals
+ i
, This
->visuals
+ i
+ 1, sizeof(IDirect3DRMVisual
*) * (This
->nb_visuals
- 1 - i
));
1467 IDirect3DRMVisual_Release(vis
);
1473 static D3DCOLOR WINAPI
IDirect3DRMFrame3Impl_GetSceneBackground(IDirect3DRMFrame3
* iface
)
1475 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1477 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1482 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetSceneBackgroundDepth(IDirect3DRMFrame3
* iface
,
1483 LPDIRECTDRAWSURFACE
* surface
)
1485 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1487 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, surface
);
1492 static D3DCOLOR WINAPI
IDirect3DRMFrame3Impl_GetSceneFogColor(IDirect3DRMFrame3
* iface
)
1494 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1496 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1501 static BOOL WINAPI
IDirect3DRMFrame3Impl_GetSceneFogEnable(IDirect3DRMFrame3
* iface
)
1503 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1505 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1510 static D3DRMFOGMODE WINAPI
IDirect3DRMFrame3Impl_GetSceneFogMode(IDirect3DRMFrame3
* iface
)
1512 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1514 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1516 return D3DRMFOG_LINEAR
;
1519 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetSceneFogParams(IDirect3DRMFrame3
* iface
,
1520 D3DVALUE
*return_start
,
1521 D3DVALUE
*return_end
,
1522 D3DVALUE
*return_density
)
1524 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1526 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface
, This
, return_start
, return_end
, return_density
);
1531 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneBackground(IDirect3DRMFrame3
* iface
,
1534 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1536 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, color
);
1541 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneBackgroundRGB(IDirect3DRMFrame3
* iface
,
1542 D3DVALUE red
, D3DVALUE green
,
1545 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1547 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface
, This
, red
, green
, blue
);
1552 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneBackgroundDepth(IDirect3DRMFrame3
* iface
,
1553 LPDIRECTDRAWSURFACE surface
)
1555 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1557 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, surface
);
1562 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneBackgroundImage(IDirect3DRMFrame3
* iface
,
1563 LPDIRECT3DRMTEXTURE3 texture
)
1565 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1567 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, texture
);
1572 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneFogEnable(IDirect3DRMFrame3
* iface
, BOOL enable
)
1574 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1576 FIXME("(%p/%p)->(%d): stub\n", iface
, This
, enable
);
1581 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneFogColor(IDirect3DRMFrame3
* iface
,
1584 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1586 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, color
);
1591 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneFogMode(IDirect3DRMFrame3
* iface
,
1594 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1596 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
1601 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneFogParams(IDirect3DRMFrame3
* iface
,
1602 D3DVALUE start
, D3DVALUE end
,
1605 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1607 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface
, This
, start
, end
, density
);
1612 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetColor(IDirect3DRMFrame3
* iface
, D3DCOLOR color
)
1614 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1616 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, color
);
1621 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetColorRGB(IDirect3DRMFrame3
* iface
, D3DVALUE red
,
1622 D3DVALUE green
, D3DVALUE blue
)
1624 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1626 FIXME("(%p/%p)->(%f,%f,%f): stub\n", iface
, This
, red
, green
, blue
);
1631 static D3DRMZBUFFERMODE WINAPI
IDirect3DRMFrame3Impl_GetZbufferMode(IDirect3DRMFrame3
* iface
)
1633 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1635 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1637 return D3DRMZBUFFER_FROMPARENT
;
1640 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetMaterialMode(IDirect3DRMFrame3
* iface
,
1641 D3DRMMATERIALMODE mode
)
1643 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1645 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
1650 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetOrientation(IDirect3DRMFrame3
* iface
,
1651 LPDIRECT3DRMFRAME3 reference
,
1652 D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
,
1653 D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
)
1655 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1657 FIXME("(%p/%p)->(%p,%f,%f,%f,%f,%f,%f): stub\n", iface
, This
, reference
,
1658 dx
, dy
, dz
, ux
, uy
, uz
);
1663 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetPosition(IDirect3DRMFrame3
* iface
,
1664 LPDIRECT3DRMFRAME3 reference
,
1665 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
)
1667 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1669 FIXME("(%p/%p)->(%p,%f,%f,%f): stub\n", iface
, This
, reference
, x
, y
, z
);
1674 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetRotation(IDirect3DRMFrame3
* iface
,
1675 LPDIRECT3DRMFRAME3 reference
,
1676 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
,
1679 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1681 FIXME("(%p/%p)->(%p,%f,%f,%f,%f): stub\n", iface
, This
, reference
, x
, y
, z
, theta
);
1686 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSortMode(IDirect3DRMFrame3
* iface
,
1689 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1691 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
1696 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetTexture(IDirect3DRMFrame3
* iface
,
1697 LPDIRECT3DRMTEXTURE3 texture
)
1699 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1701 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, texture
);
1706 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetVelocity(IDirect3DRMFrame3
* iface
,
1707 LPDIRECT3DRMFRAME3 reference
,
1708 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
,
1711 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1713 FIXME("(%p/%p)->(%p,%f,%f,%f,%d): stub\n", iface
, This
, reference
, x
, y
, z
, with_rotation
);
1718 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetZbufferMode(IDirect3DRMFrame3
* iface
,
1719 D3DRMZBUFFERMODE mode
)
1721 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1723 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, mode
);
1728 static HRESULT WINAPI
IDirect3DRMFrame3Impl_Transform(IDirect3DRMFrame3
* iface
, D3DVECTOR
*d
,
1731 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1733 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, d
, s
);
1738 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetBox(IDirect3DRMFrame3
* iface
, LPD3DRMBOX box
)
1740 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1742 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, box
);
1747 static BOOL WINAPI
IDirect3DRMFrame3Impl_GetBoxEnable(IDirect3DRMFrame3
* iface
)
1749 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1751 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1756 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetAxes(IDirect3DRMFrame3
* iface
,
1757 LPD3DVECTOR dir
, LPD3DVECTOR up
)
1759 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1761 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, dir
, up
);
1766 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetMaterial(IDirect3DRMFrame3
* iface
,
1767 LPDIRECT3DRMMATERIAL2
*material
)
1769 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1771 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, material
);
1776 static BOOL WINAPI
IDirect3DRMFrame3Impl_GetInheritAxes(IDirect3DRMFrame3
* iface
)
1778 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1780 FIXME("(%p/%p)->(): stub\n", iface
, This
);
1785 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetHierarchyBox(IDirect3DRMFrame3
* iface
,
1788 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1790 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, box
);
1795 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetBox(IDirect3DRMFrame3
* iface
, LPD3DRMBOX box
)
1797 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1799 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, box
);
1804 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetBoxEnable(IDirect3DRMFrame3
* iface
, BOOL enable
)
1806 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1808 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, enable
);
1813 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetAxes(IDirect3DRMFrame3
* iface
,
1814 D3DVALUE dx
, D3DVALUE dy
, D3DVALUE dz
,
1815 D3DVALUE ux
, D3DVALUE uy
, D3DVALUE uz
)
1817 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1819 FIXME("(%p/%p)->(%f,%f,%f,%f,%f,%f): stub\n", iface
, This
, dx
, dy
, dz
, ux
, uy
, uz
);
1824 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetInheritAxes(IDirect3DRMFrame3
* iface
,
1825 BOOL inherit_from_parent
)
1827 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1829 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, inherit_from_parent
);
1834 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetMaterial(IDirect3DRMFrame3
* iface
,
1835 LPDIRECT3DRMMATERIAL2 material
)
1837 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1839 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, material
);
1844 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetQuaternion(IDirect3DRMFrame3
* iface
,
1845 LPDIRECT3DRMFRAME3 reference
,
1848 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1850 FIXME("(%p/%p)->(%p,%p): stub\n", iface
, This
, reference
, q
);
1855 static HRESULT WINAPI
IDirect3DRMFrame3Impl_RayPick(IDirect3DRMFrame3
* iface
,
1856 LPDIRECT3DRMFRAME3 reference
, LPD3DRMRAY ray
,
1858 LPDIRECT3DRMPICKED2ARRAY
*return_visuals
)
1860 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1862 FIXME("(%p/%p)->(%p,%p,%u,%p): stub\n", iface
, This
, reference
, ray
, flags
, return_visuals
);
1867 static HRESULT WINAPI
IDirect3DRMFrame3Impl_Save(IDirect3DRMFrame3
* iface
, LPCSTR filename
,
1868 D3DRMXOFFORMAT d3dFormat
,
1869 D3DRMSAVEOPTIONS d3dSaveFlags
)
1871 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1873 FIXME("(%p/%p)->(%p,%u,%u): stub\n", iface
, This
, filename
, d3dFormat
, d3dSaveFlags
);
1878 static HRESULT WINAPI
IDirect3DRMFrame3Impl_TransformVectors(IDirect3DRMFrame3
* iface
,
1879 LPDIRECT3DRMFRAME3 reference
,
1880 DWORD num
, LPD3DVECTOR dst
,
1883 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1885 FIXME("(%p/%p)->(%p,%u,%p,%p): stub\n", iface
, This
, reference
, num
, dst
, src
);
1890 static HRESULT WINAPI
IDirect3DRMFrame3Impl_InverseTransformVectors(IDirect3DRMFrame3
* iface
,
1891 LPDIRECT3DRMFRAME3 reference
,
1892 DWORD num
, LPD3DVECTOR dst
,
1895 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1897 FIXME("(%p/%p)->(%p,%u,%p,%p): stub\n", iface
, This
, reference
, num
, dst
, src
);
1902 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetTraversalOptions(IDirect3DRMFrame3
* iface
,
1905 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1907 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, flags
);
1912 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetTraversalOptions(IDirect3DRMFrame3
* iface
,
1915 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1917 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, flags
);
1922 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetSceneFogMethod(IDirect3DRMFrame3
* iface
,
1925 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1927 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, flags
);
1932 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetSceneFogMethod(IDirect3DRMFrame3
* iface
,
1935 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1937 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, flags
);
1942 static HRESULT WINAPI
IDirect3DRMFrame3Impl_SetMaterialOverride(IDirect3DRMFrame3
* iface
,
1943 LPD3DRMMATERIALOVERRIDE override
)
1945 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1947 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, override
);
1952 static HRESULT WINAPI
IDirect3DRMFrame3Impl_GetMaterialOverride(IDirect3DRMFrame3
* iface
,
1953 LPD3DRMMATERIALOVERRIDE override
)
1955 IDirect3DRMFrameImpl
*This
= impl_from_IDirect3DRMFrame3(iface
);
1957 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, override
);
1962 static const struct IDirect3DRMFrame3Vtbl Direct3DRMFrame3_Vtbl
=
1964 /*** IUnknown methods ***/
1965 IDirect3DRMFrame3Impl_QueryInterface
,
1966 IDirect3DRMFrame3Impl_AddRef
,
1967 IDirect3DRMFrame3Impl_Release
,
1968 /*** IDirect3DRMObject methods ***/
1969 IDirect3DRMFrame3Impl_Clone
,
1970 IDirect3DRMFrame3Impl_AddDestroyCallback
,
1971 IDirect3DRMFrame3Impl_DeleteDestroyCallback
,
1972 IDirect3DRMFrame3Impl_SetAppData
,
1973 IDirect3DRMFrame3Impl_GetAppData
,
1974 IDirect3DRMFrame3Impl_SetName
,
1975 IDirect3DRMFrame3Impl_GetName
,
1976 IDirect3DRMFrame3Impl_GetClassName
,
1977 /*** IDirect3DRMFrame3 methods ***/
1978 IDirect3DRMFrame3Impl_AddChild
,
1979 IDirect3DRMFrame3Impl_AddLight
,
1980 IDirect3DRMFrame3Impl_AddMoveCallback
,
1981 IDirect3DRMFrame3Impl_AddTransform
,
1982 IDirect3DRMFrame3Impl_AddTranslation
,
1983 IDirect3DRMFrame3Impl_AddScale
,
1984 IDirect3DRMFrame3Impl_AddRotation
,
1985 IDirect3DRMFrame3Impl_AddVisual
,
1986 IDirect3DRMFrame3Impl_GetChildren
,
1987 IDirect3DRMFrame3Impl_GetColor
,
1988 IDirect3DRMFrame3Impl_GetLights
,
1989 IDirect3DRMFrame3Impl_GetMaterialMode
,
1990 IDirect3DRMFrame3Impl_GetParent
,
1991 IDirect3DRMFrame3Impl_GetPosition
,
1992 IDirect3DRMFrame3Impl_GetRotation
,
1993 IDirect3DRMFrame3Impl_GetScene
,
1994 IDirect3DRMFrame3Impl_GetSortMode
,
1995 IDirect3DRMFrame3Impl_GetTexture
,
1996 IDirect3DRMFrame3Impl_GetTransform
,
1997 IDirect3DRMFrame3Impl_GetVelocity
,
1998 IDirect3DRMFrame3Impl_GetOrientation
,
1999 IDirect3DRMFrame3Impl_GetVisuals
,
2000 IDirect3DRMFrame3Impl_InverseTransform
,
2001 IDirect3DRMFrame3Impl_Load
,
2002 IDirect3DRMFrame3Impl_LookAt
,
2003 IDirect3DRMFrame3Impl_Move
,
2004 IDirect3DRMFrame3Impl_DeleteChild
,
2005 IDirect3DRMFrame3Impl_DeleteLight
,
2006 IDirect3DRMFrame3Impl_DeleteMoveCallback
,
2007 IDirect3DRMFrame3Impl_DeleteVisual
,
2008 IDirect3DRMFrame3Impl_GetSceneBackground
,
2009 IDirect3DRMFrame3Impl_GetSceneBackgroundDepth
,
2010 IDirect3DRMFrame3Impl_GetSceneFogColor
,
2011 IDirect3DRMFrame3Impl_GetSceneFogEnable
,
2012 IDirect3DRMFrame3Impl_GetSceneFogMode
,
2013 IDirect3DRMFrame3Impl_GetSceneFogParams
,
2014 IDirect3DRMFrame3Impl_SetSceneBackground
,
2015 IDirect3DRMFrame3Impl_SetSceneBackgroundRGB
,
2016 IDirect3DRMFrame3Impl_SetSceneBackgroundDepth
,
2017 IDirect3DRMFrame3Impl_SetSceneBackgroundImage
,
2018 IDirect3DRMFrame3Impl_SetSceneFogEnable
,
2019 IDirect3DRMFrame3Impl_SetSceneFogColor
,
2020 IDirect3DRMFrame3Impl_SetSceneFogMode
,
2021 IDirect3DRMFrame3Impl_SetSceneFogParams
,
2022 IDirect3DRMFrame3Impl_SetColor
,
2023 IDirect3DRMFrame3Impl_SetColorRGB
,
2024 IDirect3DRMFrame3Impl_GetZbufferMode
,
2025 IDirect3DRMFrame3Impl_SetMaterialMode
,
2026 IDirect3DRMFrame3Impl_SetOrientation
,
2027 IDirect3DRMFrame3Impl_SetPosition
,
2028 IDirect3DRMFrame3Impl_SetRotation
,
2029 IDirect3DRMFrame3Impl_SetSortMode
,
2030 IDirect3DRMFrame3Impl_SetTexture
,
2031 IDirect3DRMFrame3Impl_SetVelocity
,
2032 IDirect3DRMFrame3Impl_SetZbufferMode
,
2033 IDirect3DRMFrame3Impl_Transform
,
2034 IDirect3DRMFrame3Impl_GetBox
,
2035 IDirect3DRMFrame3Impl_GetBoxEnable
,
2036 IDirect3DRMFrame3Impl_GetAxes
,
2037 IDirect3DRMFrame3Impl_GetMaterial
,
2038 IDirect3DRMFrame3Impl_GetInheritAxes
,
2039 IDirect3DRMFrame3Impl_GetHierarchyBox
,
2040 IDirect3DRMFrame3Impl_SetBox
,
2041 IDirect3DRMFrame3Impl_SetBoxEnable
,
2042 IDirect3DRMFrame3Impl_SetAxes
,
2043 IDirect3DRMFrame3Impl_SetInheritAxes
,
2044 IDirect3DRMFrame3Impl_SetMaterial
,
2045 IDirect3DRMFrame3Impl_SetQuaternion
,
2046 IDirect3DRMFrame3Impl_RayPick
,
2047 IDirect3DRMFrame3Impl_Save
,
2048 IDirect3DRMFrame3Impl_TransformVectors
,
2049 IDirect3DRMFrame3Impl_InverseTransformVectors
,
2050 IDirect3DRMFrame3Impl_SetTraversalOptions
,
2051 IDirect3DRMFrame3Impl_GetTraversalOptions
,
2052 IDirect3DRMFrame3Impl_SetSceneFogMethod
,
2053 IDirect3DRMFrame3Impl_GetSceneFogMethod
,
2054 IDirect3DRMFrame3Impl_SetMaterialOverride
,
2055 IDirect3DRMFrame3Impl_GetMaterialOverride
2058 static inline IDirect3DRMFrameImpl
*unsafe_impl_from_IDirect3DRMFrame2(IDirect3DRMFrame2
*iface
)
2062 assert(iface
->lpVtbl
== &Direct3DRMFrame2_Vtbl
);
2064 return impl_from_IDirect3DRMFrame2(iface
);
2067 HRESULT
Direct3DRMFrame_create(REFIID riid
, IUnknown
** ppObj
)
2069 IDirect3DRMFrameImpl
* object
;
2071 TRACE("(%p)\n", ppObj
);
2073 object
= HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, sizeof(IDirect3DRMFrameImpl
));
2076 ERR("Out of memory\n");
2077 return E_OUTOFMEMORY
;
2080 object
->IDirect3DRMFrame2_iface
.lpVtbl
= &Direct3DRMFrame2_Vtbl
;
2081 object
->IDirect3DRMFrame3_iface
.lpVtbl
= &Direct3DRMFrame3_Vtbl
;
2084 if (IsEqualGUID(riid
, &IID_IDirect3DRMFrame3
))
2085 *ppObj
= (IUnknown
*)&object
->IDirect3DRMFrame3_iface
;
2087 *ppObj
= (IUnknown
*)&object
->IDirect3DRMFrame2_iface
;