2 * Implementation of IDirect3DRMFace Interface
4 * Copyright 2013 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 IDirect3DRMFace IDirect3DRMFace_iface
;
37 IDirect3DRMFace2 IDirect3DRMFace2_iface
;
40 } IDirect3DRMFaceImpl
;
42 static inline IDirect3DRMFaceImpl
*impl_from_IDirect3DRMFace(IDirect3DRMFace
*iface
)
44 return CONTAINING_RECORD(iface
, IDirect3DRMFaceImpl
, IDirect3DRMFace_iface
);
47 static inline IDirect3DRMFaceImpl
*impl_from_IDirect3DRMFace2(IDirect3DRMFace2
*iface
)
49 return CONTAINING_RECORD(iface
, IDirect3DRMFaceImpl
, IDirect3DRMFace2_iface
);
52 /*** IUnknown methods ***/
53 static HRESULT WINAPI
IDirect3DRMFaceImpl_QueryInterface(IDirect3DRMFace
* iface
,
54 REFIID riid
, void** object
)
56 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
58 TRACE("(%p/%p)->(%s, %p)\n", iface
, This
, debugstr_guid(riid
), object
);
62 if (IsEqualGUID(riid
, &IID_IUnknown
) ||
63 IsEqualGUID(riid
, &IID_IDirect3DRMFace
))
65 *object
= &This
->IDirect3DRMFace_iface
;
67 else if(IsEqualGUID(riid
, &IID_IDirect3DRMFace2
))
69 *object
= &This
->IDirect3DRMFace2_iface
;
73 FIXME("interface %s not implemented\n", debugstr_guid(riid
));
77 IDirect3DRMFace_AddRef(iface
);
81 static ULONG WINAPI
IDirect3DRMFaceImpl_AddRef(IDirect3DRMFace
* iface
)
83 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
84 ULONG ref
= InterlockedIncrement(&This
->ref
);
86 TRACE("(%p)->(): new ref = %d\n", This
, ref
);
91 static ULONG WINAPI
IDirect3DRMFaceImpl_Release(IDirect3DRMFace
* iface
)
93 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
94 ULONG ref
= InterlockedDecrement(&This
->ref
);
96 TRACE("(%p)->(): new ref = %d\n", This
, ref
);
99 HeapFree(GetProcessHeap(), 0, This
);
104 /*** IDirect3DRMObject methods ***/
105 static HRESULT WINAPI
IDirect3DRMFaceImpl_Clone(IDirect3DRMFace
* iface
,
106 LPUNKNOWN unkwn
, REFIID riid
, LPVOID
* object
)
108 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
110 FIXME("(%p/%p)->(%p, %s, %p): stub\n", iface
, This
, unkwn
, debugstr_guid(riid
), object
);
115 static HRESULT WINAPI
IDirect3DRMFaceImpl_AddDestroyCallback(IDirect3DRMFace
* iface
,
116 D3DRMOBJECTCALLBACK cb
,
119 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
121 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
126 static HRESULT WINAPI
IDirect3DRMFaceImpl_DeleteDestroyCallback(IDirect3DRMFace
* iface
,
127 D3DRMOBJECTCALLBACK cb
,
130 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
132 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
137 static HRESULT WINAPI
IDirect3DRMFaceImpl_SetAppData(IDirect3DRMFace
* iface
, DWORD data
)
139 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
141 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, data
);
146 static DWORD WINAPI
IDirect3DRMFaceImpl_GetAppData(IDirect3DRMFace
* iface
)
148 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
150 FIXME("(%p/%p)->(): stub\n", iface
, This
);
155 static HRESULT WINAPI
IDirect3DRMFaceImpl_SetName(IDirect3DRMFace
* iface
, LPCSTR name
)
157 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
159 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, name
);
164 static HRESULT WINAPI
IDirect3DRMFaceImpl_GetName(IDirect3DRMFace
* iface
, LPDWORD size
, LPSTR name
)
166 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
168 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, size
, name
);
173 static HRESULT WINAPI
IDirect3DRMFaceImpl_GetClassName(IDirect3DRMFace
* iface
,
174 LPDWORD size
, LPSTR name
)
176 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
178 TRACE("(%p/%p)->(%p, %p)\n", iface
, This
, size
, name
);
180 return IDirect3DRMFace2_GetClassName(&This
->IDirect3DRMFace2_iface
, size
, name
);
183 /*** IDirect3DRMFace methods ***/
184 static HRESULT WINAPI
IDirect3DRMFaceImpl_AddVertex(IDirect3DRMFace
* iface
,
185 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
)
187 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
189 FIXME("(%p/%p)->(%f, %f, %f): stub\n", iface
, This
, x
, y
, z
);
194 static HRESULT WINAPI
IDirect3DRMFaceImpl_AddVertexAndNormalIndexed(IDirect3DRMFace
* iface
,
195 DWORD vertex
, DWORD normal
)
197 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
199 TRACE("(%p/%p)->(%u, %u): stub\n", iface
, This
, vertex
, normal
);
204 static HRESULT WINAPI
IDirect3DRMFaceImpl_SetColorRGB(IDirect3DRMFace
* iface
,
205 D3DVALUE r
, D3DVALUE g
, D3DVALUE b
)
207 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
209 FIXME("(%p/%p)->(%f, %f, %f): stub\n", iface
, This
, r
, g
, b
);
214 static HRESULT WINAPI
IDirect3DRMFaceImpl_SetColor(IDirect3DRMFace
* iface
, D3DCOLOR color
)
216 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
218 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, color
);
223 static HRESULT WINAPI
IDirect3DRMFaceImpl_SetTexture(IDirect3DRMFace
* iface
,
224 IDirect3DRMTexture
*texture
)
226 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
228 TRACE("(%p/%p)->(%p): stub\n", iface
, This
, texture
);
233 static HRESULT WINAPI
IDirect3DRMFaceImpl_SetTextureCoordinates(IDirect3DRMFace
* iface
,
235 D3DVALUE u
, D3DVALUE v
)
237 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
239 TRACE("(%p/%p)->(%u, %f, %f): stub\n", iface
, This
, vertex
, u
, v
);
244 static HRESULT WINAPI
IDirect3DRMFaceImpl_SetMaterial(IDirect3DRMFace
* iface
,
245 IDirect3DRMMaterial
*material
)
247 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
249 TRACE("(%p/%p)->(%p): stub\n", iface
, This
, material
);
254 static HRESULT WINAPI
IDirect3DRMFaceImpl_SetTextureTopology(IDirect3DRMFace
* iface
,
255 BOOL wrap_u
, BOOL wrap_v
)
257 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
259 TRACE("(%p/%p)->(%d, %d): stub\n", iface
, This
, wrap_u
, wrap_v
);
264 static HRESULT WINAPI
IDirect3DRMFaceImpl_GetVertex(IDirect3DRMFace
* iface
, DWORD index
,
265 D3DVECTOR
*vertex
, D3DVECTOR
*normal
)
267 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
269 TRACE("(%p/%p)->(%u, %p, %p): stub\n", iface
, This
, index
, vertex
, normal
);
274 static HRESULT WINAPI
IDirect3DRMFaceImpl_GetVertices(IDirect3DRMFace
* iface
, DWORD
*vertex_count
,
275 D3DVECTOR
*coords
, D3DVECTOR
*normals
)
277 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
279 TRACE("(%p/%p)->(%p, %p, %p): stub\n", iface
, This
, vertex_count
, coords
, normals
);
284 static HRESULT WINAPI
IDirect3DRMFaceImpl_GetTextureCoordinates(IDirect3DRMFace
* iface
,
286 D3DVALUE
*u
, D3DVALUE
*v
)
288 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
290 TRACE("(%p/%p)->(%u, %p, %p): stub\n", iface
, This
, vertex
, u
, v
);
295 static HRESULT WINAPI
IDirect3DRMFaceImpl_GetTextureTopology(IDirect3DRMFace
* iface
,
296 BOOL
*wrap_u
, BOOL
*wrap_v
)
298 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
300 TRACE("(%p/%p)->(%p, %p): stub\n", iface
, This
, wrap_u
, wrap_v
);
305 static HRESULT WINAPI
IDirect3DRMFaceImpl_GetNormal(IDirect3DRMFace
* iface
, D3DVECTOR
*normal
)
307 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
309 TRACE("(%p/%p)->(%p): stub\n", iface
, This
, normal
);
314 static HRESULT WINAPI
IDirect3DRMFaceImpl_GetTexture(IDirect3DRMFace
* iface
,
315 IDirect3DRMTexture
**texture
)
317 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
319 TRACE("(%p/%p)->(%p): stub\n", iface
, This
, texture
);
324 static HRESULT WINAPI
IDirect3DRMFaceImpl_GetMaterial(IDirect3DRMFace
* iface
,
325 IDirect3DRMMaterial
**material
)
327 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
329 TRACE("(%p/%p)->(%p): stub\n", iface
, This
, material
);
334 static int WINAPI
IDirect3DRMFaceImpl_GetVertexCount(IDirect3DRMFace
* iface
)
336 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
338 TRACE("(%p/%p)->(): stub\n", iface
, This
);
343 static int WINAPI
IDirect3DRMFaceImpl_GetVertexIndex(IDirect3DRMFace
* iface
, DWORD which
)
345 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
347 TRACE("(%p/%p)->(%u): stub\n", iface
, This
, which
);
352 static int WINAPI
IDirect3DRMFaceImpl_GetTextureCoordinateIndex(IDirect3DRMFace
* iface
, DWORD which
)
354 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
356 TRACE("(%p/%p)->(%u): stub\n", iface
, This
, which
);
361 static D3DCOLOR WINAPI
IDirect3DRMFaceImpl_GetColor(IDirect3DRMFace
* iface
)
363 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace(iface
);
365 TRACE("(%p/%p)->(): stub\n", iface
, This
);
370 static const struct IDirect3DRMFaceVtbl Direct3DRMFace_Vtbl
=
372 /*** IUnknown methods ***/
373 IDirect3DRMFaceImpl_QueryInterface
,
374 IDirect3DRMFaceImpl_AddRef
,
375 IDirect3DRMFaceImpl_Release
,
376 /*** IDirect3DRMObject methods ***/
377 IDirect3DRMFaceImpl_Clone
,
378 IDirect3DRMFaceImpl_AddDestroyCallback
,
379 IDirect3DRMFaceImpl_DeleteDestroyCallback
,
380 IDirect3DRMFaceImpl_SetAppData
,
381 IDirect3DRMFaceImpl_GetAppData
,
382 IDirect3DRMFaceImpl_SetName
,
383 IDirect3DRMFaceImpl_GetName
,
384 IDirect3DRMFaceImpl_GetClassName
,
385 /*** IDirect3DRMFace methods ***/
386 IDirect3DRMFaceImpl_AddVertex
,
387 IDirect3DRMFaceImpl_AddVertexAndNormalIndexed
,
388 IDirect3DRMFaceImpl_SetColorRGB
,
389 IDirect3DRMFaceImpl_SetColor
,
390 IDirect3DRMFaceImpl_SetTexture
,
391 IDirect3DRMFaceImpl_SetTextureCoordinates
,
392 IDirect3DRMFaceImpl_SetMaterial
,
393 IDirect3DRMFaceImpl_SetTextureTopology
,
394 IDirect3DRMFaceImpl_GetVertex
,
395 IDirect3DRMFaceImpl_GetVertices
,
396 IDirect3DRMFaceImpl_GetTextureCoordinates
,
397 IDirect3DRMFaceImpl_GetTextureTopology
,
398 IDirect3DRMFaceImpl_GetNormal
,
399 IDirect3DRMFaceImpl_GetTexture
,
400 IDirect3DRMFaceImpl_GetMaterial
,
401 IDirect3DRMFaceImpl_GetVertexCount
,
402 IDirect3DRMFaceImpl_GetVertexIndex
,
403 IDirect3DRMFaceImpl_GetTextureCoordinateIndex
,
404 IDirect3DRMFaceImpl_GetColor
408 /*** IUnknown methods ***/
409 static HRESULT WINAPI
IDirect3DRMFace2Impl_QueryInterface(IDirect3DRMFace2
* iface
,
410 REFIID riid
, void** object
)
412 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
413 return IDirect3DRMFace_QueryInterface(&This
->IDirect3DRMFace_iface
, riid
, object
);
416 static ULONG WINAPI
IDirect3DRMFace2Impl_AddRef(IDirect3DRMFace2
* iface
)
418 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
419 return IDirect3DRMFace_AddRef(&This
->IDirect3DRMFace_iface
);
422 static ULONG WINAPI
IDirect3DRMFace2Impl_Release(IDirect3DRMFace2
* iface
)
424 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
425 return IDirect3DRMFace_Release(&This
->IDirect3DRMFace_iface
);
428 /*** IDirect3DRMObject methods ***/
429 static HRESULT WINAPI
IDirect3DRMFace2Impl_Clone(IDirect3DRMFace2
* iface
,
430 LPUNKNOWN unkwn
, REFIID riid
,
433 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
435 FIXME("(%p/%p)->(%p, %s, %p): stub\n", iface
, This
, unkwn
, debugstr_guid(riid
), object
);
440 static HRESULT WINAPI
IDirect3DRMFace2Impl_AddDestroyCallback(IDirect3DRMFace2
* iface
,
441 D3DRMOBJECTCALLBACK cb
,
444 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
446 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
451 static HRESULT WINAPI
IDirect3DRMFace2Impl_DeleteDestroyCallback(IDirect3DRMFace2
* iface
,
452 D3DRMOBJECTCALLBACK cb
,
455 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
457 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, cb
, argument
);
462 static HRESULT WINAPI
IDirect3DRMFace2Impl_SetAppData(IDirect3DRMFace2
* iface
, DWORD data
)
464 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
466 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, data
);
471 static DWORD WINAPI
IDirect3DRMFace2Impl_GetAppData(IDirect3DRMFace2
* iface
)
473 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
475 FIXME("(%p/%p)->(): stub\n", iface
, This
);
480 static HRESULT WINAPI
IDirect3DRMFace2Impl_SetName(IDirect3DRMFace2
* iface
, LPCSTR name
)
482 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
484 FIXME("(%p/%p)->(%s): stub\n", iface
, This
, name
);
489 static HRESULT WINAPI
IDirect3DRMFace2Impl_GetName(IDirect3DRMFace2
* iface
,
490 LPDWORD size
, LPSTR name
)
492 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
494 FIXME("(%p/%p)->(%p, %p): stub\n", iface
, This
, size
, name
);
499 static HRESULT WINAPI
IDirect3DRMFace2Impl_GetClassName(IDirect3DRMFace2
* iface
,
500 LPDWORD size
, LPSTR name
)
502 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
504 TRACE("(%p/%p)->(%p, %p)\n", iface
, This
, size
, name
);
506 if (!size
|| *size
< strlen("Face") || !name
)
509 strcpy(name
, "Face");
510 *size
= sizeof("Face");
515 /*** IDirect3DRMFace2 methods ***/
516 static HRESULT WINAPI
IDirect3DRMFace2Impl_AddVertex(IDirect3DRMFace2
* iface
,
517 D3DVALUE x
, D3DVALUE y
, D3DVALUE z
)
519 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
521 FIXME("(%p/%p)->(%f, %f, %f): stub\n", iface
, This
, x
, y
, z
);
526 static HRESULT WINAPI
IDirect3DRMFace2Impl_AddVertexAndNormalIndexed(IDirect3DRMFace2
* iface
,
527 DWORD vertex
, DWORD normal
)
529 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
531 TRACE("(%p/%p)->(%u, %u): stub\n", iface
, This
, vertex
, normal
);
536 static HRESULT WINAPI
IDirect3DRMFace2Impl_SetColorRGB(IDirect3DRMFace2
* iface
,
537 D3DVALUE r
, D3DVALUE g
, D3DVALUE b
)
539 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
541 FIXME("(%p/%p)->(%f, %f, %f): stub\n", iface
, This
, r
, g
, b
);
546 static HRESULT WINAPI
IDirect3DRMFace2Impl_SetColor(IDirect3DRMFace2
* iface
, D3DCOLOR color
)
548 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
550 FIXME("(%p/%p)->(%u): stub\n", iface
, This
, color
);
555 static HRESULT WINAPI
IDirect3DRMFace2Impl_SetTexture(IDirect3DRMFace2
* iface
,
556 IDirect3DRMTexture3
*texture
)
558 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
560 TRACE("(%p/%p)->(%p): stub\n", iface
, This
, texture
);
565 static HRESULT WINAPI
IDirect3DRMFace2Impl_SetTextureCoordinates(IDirect3DRMFace2
* iface
,
567 D3DVALUE u
, D3DVALUE v
)
569 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
571 TRACE("(%p/%p)->(%u, %f, %f): stub\n", iface
, This
, vertex
, u
, v
);
576 static HRESULT WINAPI
IDirect3DRMFace2Impl_SetMaterial(IDirect3DRMFace2
* iface
,
577 IDirect3DRMMaterial2
*material
)
579 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
581 TRACE("(%p/%p)->(%p): stub\n", iface
, This
, material
);
586 static HRESULT WINAPI
IDirect3DRMFace2Impl_SetTextureTopology(IDirect3DRMFace2
* iface
,
587 BOOL wrap_u
, BOOL wrap_v
)
589 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
591 TRACE("(%p/%p)->(%d, %d): stub\n", iface
, This
, wrap_u
, wrap_v
);
596 static HRESULT WINAPI
IDirect3DRMFace2Impl_GetVertex(IDirect3DRMFace2
* iface
, DWORD index
,
597 D3DVECTOR
*vertex
, D3DVECTOR
*normal
)
599 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
601 TRACE("(%p/%p)->(%u, %p, %p): stub\n", iface
, This
, index
, vertex
, normal
);
606 static HRESULT WINAPI
IDirect3DRMFace2Impl_GetVertices(IDirect3DRMFace2
* iface
, DWORD
*vertex_count
,
607 D3DVECTOR
*coords
, D3DVECTOR
*normals
)
609 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
611 TRACE("(%p/%p)->(%p, %p, %p): stub\n", iface
, This
, vertex_count
, coords
, normals
);
616 static HRESULT WINAPI
IDirect3DRMFace2Impl_GetTextureCoordinates(IDirect3DRMFace2
* iface
,
618 D3DVALUE
*u
, D3DVALUE
*v
)
620 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
622 TRACE("(%p/%p)->(%u, %p, %p): stub\n", iface
, This
, vertex
, u
, v
);
627 static HRESULT WINAPI
IDirect3DRMFace2Impl_GetTextureTopology(IDirect3DRMFace2
* iface
,
628 BOOL
*wrap_u
, BOOL
*wrap_v
)
630 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
632 TRACE("(%p/%p)->(%p, %p): stub\n", iface
, This
, wrap_u
, wrap_v
);
637 static HRESULT WINAPI
IDirect3DRMFace2Impl_GetNormal(IDirect3DRMFace2
* iface
, D3DVECTOR
*normal
)
639 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
641 TRACE("(%p/%p)->(%p): stub\n", iface
, This
, normal
);
646 static HRESULT WINAPI
IDirect3DRMFace2Impl_GetTexture(IDirect3DRMFace2
* iface
,
647 IDirect3DRMTexture3
**texture
)
649 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
651 TRACE("(%p/%p)->(%p): stub\n", iface
, This
, texture
);
656 static HRESULT WINAPI
IDirect3DRMFace2Impl_GetMaterial(IDirect3DRMFace2
* iface
,
657 IDirect3DRMMaterial2
**material
)
659 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
661 TRACE("(%p/%p)->(%p): stub\n", iface
, This
, material
);
666 static int WINAPI
IDirect3DRMFace2Impl_GetVertexCount(IDirect3DRMFace2
* iface
)
668 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
670 TRACE("(%p/%p)->(): stub\n", iface
, This
);
675 static int WINAPI
IDirect3DRMFace2Impl_GetVertexIndex(IDirect3DRMFace2
* iface
, DWORD which
)
677 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
679 TRACE("(%p/%p)->(%u): stub\n", iface
, This
, which
);
684 static int WINAPI
IDirect3DRMFace2Impl_GetTextureCoordinateIndex(IDirect3DRMFace2
* iface
,
687 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
689 TRACE("(%p/%p)->(%u): stub\n", iface
, This
, which
);
694 static D3DCOLOR WINAPI
IDirect3DRMFace2Impl_GetColor(IDirect3DRMFace2
* iface
)
696 IDirect3DRMFaceImpl
*This
= impl_from_IDirect3DRMFace2(iface
);
698 TRACE("(%p/%p)->(): stub\n", iface
, This
);
703 static const struct IDirect3DRMFace2Vtbl Direct3DRMFace2_Vtbl
=
705 /*** IUnknown methods ***/
706 IDirect3DRMFace2Impl_QueryInterface
,
707 IDirect3DRMFace2Impl_AddRef
,
708 IDirect3DRMFace2Impl_Release
,
709 /*** IDirect3DRMObject methods ***/
710 IDirect3DRMFace2Impl_Clone
,
711 IDirect3DRMFace2Impl_AddDestroyCallback
,
712 IDirect3DRMFace2Impl_DeleteDestroyCallback
,
713 IDirect3DRMFace2Impl_SetAppData
,
714 IDirect3DRMFace2Impl_GetAppData
,
715 IDirect3DRMFace2Impl_SetName
,
716 IDirect3DRMFace2Impl_GetName
,
717 IDirect3DRMFace2Impl_GetClassName
,
718 /*** IDirect3DRMFace2 methods ***/
719 IDirect3DRMFace2Impl_AddVertex
,
720 IDirect3DRMFace2Impl_AddVertexAndNormalIndexed
,
721 IDirect3DRMFace2Impl_SetColorRGB
,
722 IDirect3DRMFace2Impl_SetColor
,
723 IDirect3DRMFace2Impl_SetTexture
,
724 IDirect3DRMFace2Impl_SetTextureCoordinates
,
725 IDirect3DRMFace2Impl_SetMaterial
,
726 IDirect3DRMFace2Impl_SetTextureTopology
,
727 IDirect3DRMFace2Impl_GetVertex
,
728 IDirect3DRMFace2Impl_GetVertices
,
729 IDirect3DRMFace2Impl_GetTextureCoordinates
,
730 IDirect3DRMFace2Impl_GetTextureTopology
,
731 IDirect3DRMFace2Impl_GetNormal
,
732 IDirect3DRMFace2Impl_GetTexture
,
733 IDirect3DRMFace2Impl_GetMaterial
,
734 IDirect3DRMFace2Impl_GetVertexCount
,
735 IDirect3DRMFace2Impl_GetVertexIndex
,
736 IDirect3DRMFace2Impl_GetTextureCoordinateIndex
,
737 IDirect3DRMFace2Impl_GetColor
740 HRESULT
Direct3DRMFace_create(REFIID riid
, IUnknown
** ret_iface
)
742 IDirect3DRMFaceImpl
* object
;
744 TRACE("(%p)\n", ret_iface
);
746 object
= HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, sizeof(IDirect3DRMFaceImpl
));
748 return E_OUTOFMEMORY
;
750 object
->IDirect3DRMFace_iface
.lpVtbl
= &Direct3DRMFace_Vtbl
;
751 object
->IDirect3DRMFace2_iface
.lpVtbl
= &Direct3DRMFace2_Vtbl
;
754 if (IsEqualGUID(riid
, &IID_IDirect3DRMFace2
))
755 *ret_iface
= (IUnknown
*)&object
->IDirect3DRMFace2_iface
;
757 *ret_iface
= (IUnknown
*)&object
->IDirect3DRMFace_iface
;