2 * Implementation of IDirect3DRMDevice Interface
4 * Copyright 2011, 2012 André Hentschel
6 * This file contains the (internal) driver registration functions,
7 * driver enumeration APIs and DirectDraw creation functions.
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
24 #include "wine/debug.h"
31 #include "d3drm_private.h"
33 WINE_DEFAULT_DEBUG_CHANNEL(d3drm
);
36 IDirect3DRMDevice2 IDirect3DRMDevice2_iface
;
37 IDirect3DRMDevice3 IDirect3DRMDevice3_iface
;
39 } IDirect3DRMDeviceImpl
;
41 static inline IDirect3DRMDeviceImpl
*impl_from_IDirect3DRMDevice2(IDirect3DRMDevice2
*iface
)
43 return CONTAINING_RECORD(iface
, IDirect3DRMDeviceImpl
, IDirect3DRMDevice2_iface
);
46 static inline IDirect3DRMDeviceImpl
*impl_from_IDirect3DRMDevice3(IDirect3DRMDevice3
*iface
)
48 return CONTAINING_RECORD(iface
, IDirect3DRMDeviceImpl
, IDirect3DRMDevice3_iface
);
51 /*** IUnknown methods ***/
52 static HRESULT WINAPI
IDirect3DRMDevice2Impl_QueryInterface(IDirect3DRMDevice2
* iface
,
53 REFIID riid
, void** object
)
55 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
57 TRACE("(%p/%p)->(%s, %p)\n", iface
, This
, debugstr_guid(riid
), object
);
61 if (IsEqualGUID(riid
, &IID_IUnknown
) ||
62 IsEqualGUID(riid
, &IID_IDirect3DRMDevice
) ||
63 IsEqualGUID(riid
, &IID_IDirect3DRMDevice2
))
65 *object
= &This
->IDirect3DRMDevice2_iface
;
67 else if(IsEqualGUID(riid
, &IID_IDirect3DRMDevice3
))
69 *object
= &This
->IDirect3DRMDevice3_iface
;
73 FIXME("interface %s not implemented\n", debugstr_guid(riid
));
77 IDirect3DRMDevice2_AddRef(iface
);
81 static ULONG WINAPI
IDirect3DRMDevice2Impl_AddRef(IDirect3DRMDevice2
* iface
)
83 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
85 TRACE("(%p)\n", This
);
87 return InterlockedIncrement(&This
->ref
);
90 static ULONG WINAPI
IDirect3DRMDevice2Impl_Release(IDirect3DRMDevice2
* iface
)
92 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
93 ULONG ref
= InterlockedDecrement(&This
->ref
);
95 TRACE("(%p)\n", This
);
98 HeapFree(GetProcessHeap(), 0, This
);
103 /*** IDirect3DRMObject methods ***/
104 static HRESULT WINAPI
IDirect3DRMDevice2Impl_Clone(IDirect3DRMDevice2
* iface
,
105 LPUNKNOWN unkwn
, REFIID riid
,
108 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
110 FIXME("(%p/%p)->(%p, %s, %p): stub\n", iface
, This
, unkwn
, debugstr_guid(riid
), object
);
115 static HRESULT WINAPI
IDirect3DRMDevice2Impl_AddDestroyCallback(IDirect3DRMDevice2
* iface
,
116 D3DRMOBJECTCALLBACK cb
,
119 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
121 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
126 static HRESULT WINAPI
IDirect3DRMDevice2Impl_DeleteDestroyCallback(IDirect3DRMDevice2
* iface
,
127 D3DRMOBJECTCALLBACK cb
,
130 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
132 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
137 static HRESULT WINAPI
IDirect3DRMDevice2Impl_SetAppData(IDirect3DRMDevice2
* iface
,
140 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
142 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, data
);
147 static DWORD WINAPI
IDirect3DRMDevice2Impl_GetAppData(IDirect3DRMDevice2
* iface
)
149 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
151 FIXME("(%p/%p)->(): stub\n", iface
, This
);
156 static HRESULT WINAPI
IDirect3DRMDevice2Impl_SetName(IDirect3DRMDevice2
* iface
, LPCSTR name
)
158 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
160 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, name
);
165 static HRESULT WINAPI
IDirect3DRMDevice2Impl_GetName(IDirect3DRMDevice2
* iface
,
166 LPDWORD size
, LPSTR name
)
168 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
170 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, size
, name
);
175 static HRESULT WINAPI
IDirect3DRMDevice2Impl_GetClassName(IDirect3DRMDevice2
* iface
,
176 LPDWORD size
, LPSTR name
)
178 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
180 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, size
, name
);
185 /*** IDirect3DRMDevice methods ***/
186 static HRESULT WINAPI
IDirect3DRMDevice2Impl_Init(IDirect3DRMDevice2
* iface
, ULONG width
,
189 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
191 FIXME("(%p/%p)->(%u, %u): stub\n", iface
, This
, width
, height
);
196 /*** IDirect3DRMDevice2 methods ***/
197 static HRESULT WINAPI
IDirect3DRMDevice2Impl_InitFromD3D(IDirect3DRMDevice2
* iface
,
199 LPDIRECT3DDEVICE lpD3DDev
)
201 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
203 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, lpD3D
, lpD3DDev
);
208 static HRESULT WINAPI
IDirect3DRMDevice2Impl_InitFromClipper(IDirect3DRMDevice2
* iface
,
209 LPDIRECTDRAWCLIPPER lpDDClipper
,
210 LPGUID lpGUID
, int width
, int height
)
212 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
214 FIXME("(%p/%p)->(%p, %p, %u, %u): stub\n", iface
, This
, lpDDClipper
, lpGUID
, width
, height
);
219 static HRESULT WINAPI
IDirect3DRMDevice2Impl_Update(IDirect3DRMDevice2
* iface
)
221 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
223 FIXME("(%p/%p)->(): stub\n", iface
, This
);
228 static HRESULT WINAPI
IDirect3DRMDevice2Impl_AddUpdateCallback(IDirect3DRMDevice2
* iface
,
229 D3DRMUPDATECALLBACK cb
, LPVOID arg
)
231 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
233 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, arg
);
238 static HRESULT WINAPI
IDirect3DRMDevice2Impl_DeleteUpdateCallback(IDirect3DRMDevice2
* iface
,
239 D3DRMUPDATECALLBACK cb
,
242 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
244 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, arg
);
249 static HRESULT WINAPI
IDirect3DRMDevice2Impl_SetBufferCount(IDirect3DRMDevice2
* iface
, DWORD count
)
251 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
253 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, count
);
258 static DWORD WINAPI
IDirect3DRMDevice2Impl_GetBufferCount(IDirect3DRMDevice2
* iface
)
260 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
262 FIXME("(%p/%p)->(): stub\n", iface
, This
);
267 static HRESULT WINAPI
IDirect3DRMDevice2Impl_SetDither(IDirect3DRMDevice2
* iface
, BOOL enable
)
269 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
271 FIXME("(%p/%p)->(%d): stub\n", iface
, This
, enable
);
276 static HRESULT WINAPI
IDirect3DRMDevice2Impl_SetShades(IDirect3DRMDevice2
* iface
, DWORD count
)
278 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
280 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, count
);
285 static HRESULT WINAPI
IDirect3DRMDevice2Impl_SetQuality(IDirect3DRMDevice2
* iface
,
286 D3DRMRENDERQUALITY quality
)
288 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
290 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, quality
);
295 static HRESULT WINAPI
IDirect3DRMDevice2Impl_SetTextureQuality(IDirect3DRMDevice2
* iface
,
296 D3DRMTEXTUREQUALITY quality
)
298 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
300 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, quality
);
305 static HRESULT WINAPI
IDirect3DRMDevice2Impl_GetViewports(IDirect3DRMDevice2
* iface
,
306 LPDIRECT3DRMVIEWPORTARRAY
*return_views
)
308 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
310 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, return_views
);
315 static BOOL WINAPI
IDirect3DRMDevice2Impl_GetDither(IDirect3DRMDevice2
* iface
)
317 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
319 FIXME("(%p/%p)->(): stub\n", iface
, This
);
324 static DWORD WINAPI
IDirect3DRMDevice2Impl_GetShades(IDirect3DRMDevice2
* iface
)
326 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
328 FIXME("(%p/%p)->(): stub\n", iface
, This
);
333 static DWORD WINAPI
IDirect3DRMDevice2Impl_GetHeight(IDirect3DRMDevice2
* iface
)
335 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
337 FIXME("(%p/%p)->(): stub\n", iface
, This
);
342 static DWORD WINAPI
IDirect3DRMDevice2Impl_GetWidth(IDirect3DRMDevice2
* iface
)
344 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
346 FIXME("(%p/%p)->(): stub\n", iface
, This
);
351 static DWORD WINAPI
IDirect3DRMDevice2Impl_GetTrianglesDrawn(IDirect3DRMDevice2
* iface
)
353 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
355 FIXME("(%p/%p)->(): stub\n", iface
, This
);
360 static DWORD WINAPI
IDirect3DRMDevice2Impl_GetWireframeOptions(IDirect3DRMDevice2
* iface
)
362 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
364 FIXME("(%p/%p)->(): stub\n", iface
, This
);
369 static D3DRMRENDERQUALITY WINAPI
IDirect3DRMDevice2Impl_GetQuality(IDirect3DRMDevice2
* iface
)
371 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
373 FIXME("(%p/%p)->(): stub\n", iface
, This
);
378 static D3DCOLORMODEL WINAPI
IDirect3DRMDevice2Impl_GetColorModel(IDirect3DRMDevice2
* iface
)
380 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
382 FIXME("(%p/%p)->(): stub\n", iface
, This
);
387 static D3DRMTEXTUREQUALITY WINAPI
IDirect3DRMDevice2Impl_GetTextureQuality(IDirect3DRMDevice2
* iface
)
389 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
391 FIXME("(%p/%p)->(): stub\n", iface
, This
);
396 static HRESULT WINAPI
IDirect3DRMDevice2Impl_GetDirect3DDevice(IDirect3DRMDevice2
* iface
,
397 LPDIRECT3DDEVICE
* dev
)
399 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
401 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, dev
);
406 static HRESULT WINAPI
IDirect3DRMDevice2Impl_InitFromD3D2(IDirect3DRMDevice2
* iface
,
408 LPDIRECT3DDEVICE2 lpD3DDev
)
410 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
412 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, lpD3D
, lpD3DDev
);
417 static HRESULT WINAPI
IDirect3DRMDevice2Impl_InitFromSurface(IDirect3DRMDevice2
* iface
,
418 LPGUID lpGUID
, LPDIRECTDRAW lpDD
,
419 LPDIRECTDRAWSURFACE lpDDSBack
)
421 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
423 FIXME("(%p/%p)->(%p, %p, %p): stub\n", iface
, This
, lpGUID
, lpDD
, lpDDSBack
);
428 static HRESULT WINAPI
IDirect3DRMDevice2Impl_SetRenderMode(IDirect3DRMDevice2
* iface
, DWORD dwFlags
)
430 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
432 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, dwFlags
);
437 static DWORD WINAPI
IDirect3DRMDevice2Impl_GetRenderMode(IDirect3DRMDevice2
* iface
)
439 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
441 FIXME("(%p/%p)->(): stub\n", iface
, This
);
446 static HRESULT WINAPI
IDirect3DRMDevice2Impl_GetDirect3DDevice2(IDirect3DRMDevice2
* iface
,
447 LPDIRECT3DDEVICE2
* dev
)
449 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice2(iface
);
451 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, dev
);
456 static const struct IDirect3DRMDevice2Vtbl Direct3DRMDevice2_Vtbl
=
458 /*** IUnknown methods ***/
459 IDirect3DRMDevice2Impl_QueryInterface
,
460 IDirect3DRMDevice2Impl_AddRef
,
461 IDirect3DRMDevice2Impl_Release
,
462 /*** IDirect3DRMObject methods ***/
463 IDirect3DRMDevice2Impl_Clone
,
464 IDirect3DRMDevice2Impl_AddDestroyCallback
,
465 IDirect3DRMDevice2Impl_DeleteDestroyCallback
,
466 IDirect3DRMDevice2Impl_SetAppData
,
467 IDirect3DRMDevice2Impl_GetAppData
,
468 IDirect3DRMDevice2Impl_SetName
,
469 IDirect3DRMDevice2Impl_GetName
,
470 IDirect3DRMDevice2Impl_GetClassName
,
471 /*** IDirect3DRMDevice methods ***/
472 IDirect3DRMDevice2Impl_Init
,
473 IDirect3DRMDevice2Impl_InitFromD3D
,
474 IDirect3DRMDevice2Impl_InitFromClipper
,
475 IDirect3DRMDevice2Impl_Update
,
476 IDirect3DRMDevice2Impl_AddUpdateCallback
,
477 IDirect3DRMDevice2Impl_DeleteUpdateCallback
,
478 IDirect3DRMDevice2Impl_SetBufferCount
,
479 IDirect3DRMDevice2Impl_GetBufferCount
,
480 IDirect3DRMDevice2Impl_SetDither
,
481 IDirect3DRMDevice2Impl_SetShades
,
482 IDirect3DRMDevice2Impl_SetQuality
,
483 IDirect3DRMDevice2Impl_SetTextureQuality
,
484 IDirect3DRMDevice2Impl_GetViewports
,
485 IDirect3DRMDevice2Impl_GetDither
,
486 IDirect3DRMDevice2Impl_GetShades
,
487 IDirect3DRMDevice2Impl_GetHeight
,
488 IDirect3DRMDevice2Impl_GetWidth
,
489 IDirect3DRMDevice2Impl_GetTrianglesDrawn
,
490 IDirect3DRMDevice2Impl_GetWireframeOptions
,
491 IDirect3DRMDevice2Impl_GetQuality
,
492 IDirect3DRMDevice2Impl_GetColorModel
,
493 IDirect3DRMDevice2Impl_GetTextureQuality
,
494 IDirect3DRMDevice2Impl_GetDirect3DDevice
,
495 /*** IDirect3DRMDevice2 methods ***/
496 IDirect3DRMDevice2Impl_InitFromD3D2
,
497 IDirect3DRMDevice2Impl_InitFromSurface
,
498 IDirect3DRMDevice2Impl_SetRenderMode
,
499 IDirect3DRMDevice2Impl_GetRenderMode
,
500 IDirect3DRMDevice2Impl_GetDirect3DDevice2
504 /*** IUnknown methods ***/
505 static HRESULT WINAPI
IDirect3DRMDevice3Impl_QueryInterface(IDirect3DRMDevice3
* iface
,
506 REFIID riid
, void** object
)
508 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
509 return IDirect3DRMDevice2_QueryInterface(&This
->IDirect3DRMDevice2_iface
, riid
, object
);
512 static ULONG WINAPI
IDirect3DRMDevice3Impl_AddRef(IDirect3DRMDevice3
* iface
)
514 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
516 TRACE("(%p)\n", This
);
518 return InterlockedIncrement(&This
->ref
);
521 static ULONG WINAPI
IDirect3DRMDevice3Impl_Release(IDirect3DRMDevice3
* iface
)
523 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
524 ULONG ref
= InterlockedDecrement(&This
->ref
);
526 TRACE("(%p)\n", This
);
529 HeapFree(GetProcessHeap(), 0, This
);
534 /*** IDirect3DRMObject methods ***/
535 static HRESULT WINAPI
IDirect3DRMDevice3Impl_Clone(IDirect3DRMDevice3
* iface
,
536 LPUNKNOWN unkwn
, REFIID riid
,
539 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
541 FIXME("(%p/%p)->(%p, %s, %p): stub\n", iface
, This
, unkwn
, debugstr_guid(riid
), object
);
546 static HRESULT WINAPI
IDirect3DRMDevice3Impl_AddDestroyCallback(IDirect3DRMDevice3
* iface
,
547 D3DRMOBJECTCALLBACK cb
,
550 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
552 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
557 static HRESULT WINAPI
IDirect3DRMDevice3Impl_DeleteDestroyCallback(IDirect3DRMDevice3
* iface
,
558 D3DRMOBJECTCALLBACK cb
,
561 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
563 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
568 static HRESULT WINAPI
IDirect3DRMDevice3Impl_SetAppData(IDirect3DRMDevice3
* iface
,
571 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
573 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, data
);
578 static DWORD WINAPI
IDirect3DRMDevice3Impl_GetAppData(IDirect3DRMDevice3
* iface
)
580 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
582 FIXME("(%p/%p)->(): stub\n", iface
, This
);
587 static HRESULT WINAPI
IDirect3DRMDevice3Impl_SetName(IDirect3DRMDevice3
* iface
, LPCSTR name
)
589 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
591 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, name
);
596 static HRESULT WINAPI
IDirect3DRMDevice3Impl_GetName(IDirect3DRMDevice3
* iface
,
597 LPDWORD size
, LPSTR name
)
599 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
601 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, size
, name
);
606 static HRESULT WINAPI
IDirect3DRMDevice3Impl_GetClassName(IDirect3DRMDevice3
* iface
,
607 LPDWORD size
, LPSTR name
)
609 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
611 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, size
, name
);
616 /*** IDirect3DRMDevice methods ***/
617 static HRESULT WINAPI
IDirect3DRMDevice3Impl_Init(IDirect3DRMDevice3
* iface
, ULONG width
,
620 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
622 FIXME("(%p/%p)->(%u, %u): stub\n", iface
, This
, width
, height
);
627 static HRESULT WINAPI
IDirect3DRMDevice3Impl_InitFromD3D(IDirect3DRMDevice3
* iface
,
629 LPDIRECT3DDEVICE lpD3DDev
)
631 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
633 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, lpD3D
, lpD3DDev
);
638 static HRESULT WINAPI
IDirect3DRMDevice3Impl_InitFromClipper(IDirect3DRMDevice3
* iface
,
639 LPDIRECTDRAWCLIPPER lpDDClipper
,
640 LPGUID lpGUID
, int width
, int height
)
642 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
644 FIXME("(%p/%p)->(%p, %p, %u, %u): stub\n", iface
, This
, lpDDClipper
, lpGUID
, width
, height
);
649 static HRESULT WINAPI
IDirect3DRMDevice3Impl_Update(IDirect3DRMDevice3
* iface
)
651 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
653 FIXME("(%p/%p)->(): stub\n", iface
, This
);
658 static HRESULT WINAPI
IDirect3DRMDevice3Impl_AddUpdateCallback(IDirect3DRMDevice3
* iface
,
659 D3DRMUPDATECALLBACK cb
, LPVOID arg
)
661 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
663 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, arg
);
668 static HRESULT WINAPI
IDirect3DRMDevice3Impl_DeleteUpdateCallback(IDirect3DRMDevice3
* iface
,
669 D3DRMUPDATECALLBACK cb
,
672 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
674 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, arg
);
679 static HRESULT WINAPI
IDirect3DRMDevice3Impl_SetBufferCount(IDirect3DRMDevice3
* iface
, DWORD count
)
681 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
683 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, count
);
688 static DWORD WINAPI
IDirect3DRMDevice3Impl_GetBufferCount(IDirect3DRMDevice3
* iface
)
690 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
692 FIXME("(%p/%p)->(): stub\n", iface
, This
);
697 static HRESULT WINAPI
IDirect3DRMDevice3Impl_SetDither(IDirect3DRMDevice3
* iface
, BOOL enable
)
699 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
701 FIXME("(%p/%p)->(%d): stub\n", iface
, This
, enable
);
706 static HRESULT WINAPI
IDirect3DRMDevice3Impl_SetShades(IDirect3DRMDevice3
* iface
, DWORD count
)
708 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
710 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, count
);
715 static HRESULT WINAPI
IDirect3DRMDevice3Impl_SetQuality(IDirect3DRMDevice3
* iface
,
716 D3DRMRENDERQUALITY quality
)
718 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
720 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, quality
);
725 static HRESULT WINAPI
IDirect3DRMDevice3Impl_SetTextureQuality(IDirect3DRMDevice3
* iface
,
726 D3DRMTEXTUREQUALITY quality
)
728 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
730 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, quality
);
735 static HRESULT WINAPI
IDirect3DRMDevice3Impl_GetViewports(IDirect3DRMDevice3
* iface
,
736 LPDIRECT3DRMVIEWPORTARRAY
*return_views
)
738 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
740 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, return_views
);
745 static BOOL WINAPI
IDirect3DRMDevice3Impl_GetDither(IDirect3DRMDevice3
* iface
)
747 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
749 FIXME("(%p/%p)->(): stub\n", iface
, This
);
754 static DWORD WINAPI
IDirect3DRMDevice3Impl_GetShades(IDirect3DRMDevice3
* iface
)
756 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
758 FIXME("(%p/%p)->(): stub\n", iface
, This
);
763 static DWORD WINAPI
IDirect3DRMDevice3Impl_GetHeight(IDirect3DRMDevice3
* iface
)
765 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
767 FIXME("(%p/%p)->(): stub\n", iface
, This
);
772 static DWORD WINAPI
IDirect3DRMDevice3Impl_GetWidth(IDirect3DRMDevice3
* iface
)
774 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
776 FIXME("(%p/%p)->(): stub\n", iface
, This
);
781 static DWORD WINAPI
IDirect3DRMDevice3Impl_GetTrianglesDrawn(IDirect3DRMDevice3
* iface
)
783 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
785 FIXME("(%p/%p)->(): stub\n", iface
, This
);
790 static DWORD WINAPI
IDirect3DRMDevice3Impl_GetWireframeOptions(IDirect3DRMDevice3
* iface
)
792 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
794 FIXME("(%p/%p)->(): stub\n", iface
, This
);
799 static D3DRMRENDERQUALITY WINAPI
IDirect3DRMDevice3Impl_GetQuality(IDirect3DRMDevice3
* iface
)
801 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
803 FIXME("(%p/%p)->(): stub\n", iface
, This
);
808 static D3DCOLORMODEL WINAPI
IDirect3DRMDevice3Impl_GetColorModel(IDirect3DRMDevice3
* iface
)
810 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
812 FIXME("(%p/%p)->(): stub\n", iface
, This
);
817 static D3DRMTEXTUREQUALITY WINAPI
IDirect3DRMDevice3Impl_GetTextureQuality(IDirect3DRMDevice3
* iface
)
819 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
821 FIXME("(%p/%p)->(): stub\n", iface
, This
);
826 static HRESULT WINAPI
IDirect3DRMDevice3Impl_GetDirect3DDevice(IDirect3DRMDevice3
* iface
,
827 LPDIRECT3DDEVICE
* dev
)
829 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
831 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, dev
);
836 /*** IDirect3DRMDevice2 methods ***/
837 static HRESULT WINAPI
IDirect3DRMDevice3Impl_InitFromD3D2(IDirect3DRMDevice3
* iface
,
839 LPDIRECT3DDEVICE2 lpD3DDev
)
841 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
843 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, lpD3D
, lpD3DDev
);
848 static HRESULT WINAPI
IDirect3DRMDevice3Impl_InitFromSurface(IDirect3DRMDevice3
* iface
,
849 LPGUID lpGUID
, LPDIRECTDRAW lpDD
,
850 LPDIRECTDRAWSURFACE lpDDSBack
)
852 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
854 FIXME("(%p/%p)->(%p, %p, %p): stub\n", iface
, This
, lpGUID
, lpDD
, lpDDSBack
);
859 static HRESULT WINAPI
IDirect3DRMDevice3Impl_SetRenderMode(IDirect3DRMDevice3
* iface
, DWORD dwFlags
)
861 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
863 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, dwFlags
);
868 static DWORD WINAPI
IDirect3DRMDevice3Impl_GetRenderMode(IDirect3DRMDevice3
* iface
)
870 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
872 FIXME("(%p/%p)->(): stub\n", iface
, This
);
877 static HRESULT WINAPI
IDirect3DRMDevice3Impl_GetDirect3DDevice2(IDirect3DRMDevice3
* iface
,
878 LPDIRECT3DDEVICE2
* dev
)
880 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
882 FIXME("(%p/%p)->(%p): stub\n", iface
, This
, dev
);
887 /*** IDirect3DRMDevice3 methods ***/
888 static HRESULT WINAPI
IDirect3DRMDevice3Impl_FindPreferredTextureFormat(IDirect3DRMDevice3
* iface
,
891 LPDDPIXELFORMAT lpDDPF
)
893 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
895 FIXME("(%p/%p)->(%u, %u, %p): stub\n", iface
, This
, bitdepths
, flags
, lpDDPF
);
900 static HRESULT WINAPI
IDirect3DRMDevice3Impl_RenderStateChange(IDirect3DRMDevice3
* iface
,
901 D3DRENDERSTATETYPE type
, DWORD val
,
904 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
906 FIXME("(%p/%p)->(%u, %u, %u): stub\n", iface
, This
, type
, val
, flags
);
911 static HRESULT WINAPI
IDirect3DRMDevice3Impl_LightStateChange(IDirect3DRMDevice3
* iface
,
912 D3DLIGHTSTATETYPE type
, DWORD val
,
915 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
917 FIXME("(%p/%p)->(%u, %u, %u): stub\n", iface
, This
, type
, val
, flags
);
922 static HRESULT WINAPI
IDirect3DRMDevice3Impl_GetStateChangeOptions(IDirect3DRMDevice3
* iface
,
923 DWORD stateclass
, DWORD statenum
,
926 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
928 FIXME("(%p/%p)->(%u, %u, %p): stub\n", iface
, This
, stateclass
, statenum
, flags
);
933 static HRESULT WINAPI
IDirect3DRMDevice3Impl_SetStateChangeOptions(IDirect3DRMDevice3
* iface
,
934 DWORD stateclass
, DWORD statenum
,
937 IDirect3DRMDeviceImpl
*This
= impl_from_IDirect3DRMDevice3(iface
);
939 FIXME("(%p/%p)->(%u, %u, %u): stub\n", iface
, This
, stateclass
, statenum
, flags
);
944 static const struct IDirect3DRMDevice3Vtbl Direct3DRMDevice3_Vtbl
=
946 /*** IUnknown methods ***/
947 IDirect3DRMDevice3Impl_QueryInterface
,
948 IDirect3DRMDevice3Impl_AddRef
,
949 IDirect3DRMDevice3Impl_Release
,
950 /*** IDirect3DRMObject methods ***/
951 IDirect3DRMDevice3Impl_Clone
,
952 IDirect3DRMDevice3Impl_AddDestroyCallback
,
953 IDirect3DRMDevice3Impl_DeleteDestroyCallback
,
954 IDirect3DRMDevice3Impl_SetAppData
,
955 IDirect3DRMDevice3Impl_GetAppData
,
956 IDirect3DRMDevice3Impl_SetName
,
957 IDirect3DRMDevice3Impl_GetName
,
958 IDirect3DRMDevice3Impl_GetClassName
,
959 /*** IDirect3DRMDevice methods ***/
960 IDirect3DRMDevice3Impl_Init
,
961 IDirect3DRMDevice3Impl_InitFromD3D
,
962 IDirect3DRMDevice3Impl_InitFromClipper
,
963 IDirect3DRMDevice3Impl_Update
,
964 IDirect3DRMDevice3Impl_AddUpdateCallback
,
965 IDirect3DRMDevice3Impl_DeleteUpdateCallback
,
966 IDirect3DRMDevice3Impl_SetBufferCount
,
967 IDirect3DRMDevice3Impl_GetBufferCount
,
968 IDirect3DRMDevice3Impl_SetDither
,
969 IDirect3DRMDevice3Impl_SetShades
,
970 IDirect3DRMDevice3Impl_SetQuality
,
971 IDirect3DRMDevice3Impl_SetTextureQuality
,
972 IDirect3DRMDevice3Impl_GetViewports
,
973 IDirect3DRMDevice3Impl_GetDither
,
974 IDirect3DRMDevice3Impl_GetShades
,
975 IDirect3DRMDevice3Impl_GetHeight
,
976 IDirect3DRMDevice3Impl_GetWidth
,
977 IDirect3DRMDevice3Impl_GetTrianglesDrawn
,
978 IDirect3DRMDevice3Impl_GetWireframeOptions
,
979 IDirect3DRMDevice3Impl_GetQuality
,
980 IDirect3DRMDevice3Impl_GetColorModel
,
981 IDirect3DRMDevice3Impl_GetTextureQuality
,
982 IDirect3DRMDevice3Impl_GetDirect3DDevice
,
983 /*** IDirect3DRMDevice2 methods ***/
984 IDirect3DRMDevice3Impl_InitFromD3D2
,
985 IDirect3DRMDevice3Impl_InitFromSurface
,
986 IDirect3DRMDevice3Impl_SetRenderMode
,
987 IDirect3DRMDevice3Impl_GetRenderMode
,
988 IDirect3DRMDevice3Impl_GetDirect3DDevice2
,
989 /*** IDirect3DRMDevice3 methods ***/
990 IDirect3DRMDevice3Impl_FindPreferredTextureFormat
,
991 IDirect3DRMDevice3Impl_RenderStateChange
,
992 IDirect3DRMDevice3Impl_LightStateChange
,
993 IDirect3DRMDevice3Impl_GetStateChangeOptions
,
994 IDirect3DRMDevice3Impl_SetStateChangeOptions
997 HRESULT
Direct3DRMDevice_create(REFIID riid
, IUnknown
** ppObj
)
999 IDirect3DRMDeviceImpl
* object
;
1001 TRACE("(%p)\n", ppObj
);
1003 object
= HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, sizeof(IDirect3DRMDeviceImpl
));
1006 ERR("Out of memory\n");
1007 return E_OUTOFMEMORY
;
1010 object
->IDirect3DRMDevice2_iface
.lpVtbl
= &Direct3DRMDevice2_Vtbl
;
1011 object
->IDirect3DRMDevice3_iface
.lpVtbl
= &Direct3DRMDevice3_Vtbl
;
1014 if (IsEqualGUID(riid
, &IID_IDirect3DRMFrame3
))
1015 *ppObj
= (IUnknown
*)&object
->IDirect3DRMDevice3_iface
;
1017 *ppObj
= (IUnknown
*)&object
->IDirect3DRMDevice2_iface
;