2 * Copyright (C) 2008 Vijay Kiran Kamuju
3 * Copyright (C) 2010 Christian Costa
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #ifndef __D3DRMOBJ_H__
21 #define __D3DRMOBJ_H__
32 /*****************************************************************************
33 * Predeclare the interfaces
36 DEFINE_GUID(IID_IDirect3DRMObject
, 0xeb16cb00, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
37 DEFINE_GUID(IID_IDirect3DRMVisual
, 0xeb16cb04, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
39 typedef struct IDirect3DRMObject
*LPDIRECT3DRMOBJECT
, **LPLPDIRECT3DRMOBJECT
;
40 typedef struct IDirect3DRMObject2
*LPDIRECT3DRMOBJECT2
, **LPLPDIRECT3DRMOBJECT2
;
41 typedef struct IDirect3DRMDevice
*LPDIRECT3DRMDEVICE
, **LPLPDIRECT3DRMDEVICE
;
42 typedef struct IDirect3DRMDevice2
*LPDIRECT3DRMDEVICE2
, **LPLPDIRECT3DRMDEVICE2
;
43 typedef struct IDirect3DRMDevice3
*LPDIRECT3DRMDEVICE3
, **LPLPDIRECT3DRMDEVICE3
;
44 typedef struct IDirect3DRMViewport
*LPDIRECT3DRMVIEWPORT
, **LPLPDIRECT3DRMVIEWPORT
;
45 typedef struct IDirect3DRMViewport2
*LPDIRECT3DRMVIEWPORT2
, **LPLPDIRECT3DRMVIEWPORT2
;
46 typedef struct IDirect3DRMFrame
*LPDIRECT3DRMFRAME
, **LPLPDIRECT3DRMFRAME
;
47 typedef struct IDirect3DRMFrame2
*LPDIRECT3DRMFRAME2
, **LPLPDIRECT3DRMFRAME2
;
48 typedef struct IDirect3DRMFrame3
*LPDIRECT3DRMFRAME3
, **LPLPDIRECT3DRMFRAME3
;
49 typedef struct IDirect3DRMVisual
*LPDIRECT3DRMVISUAL
, **LPLPDIRECT3DRMVISUAL
;
50 typedef struct IDirect3DRMMesh
*LPDIRECT3DRMMESH
, **LPLPDIRECT3DRMMESH
;
51 typedef struct IDirect3DRMMeshBuilder
*LPDIRECT3DRMMESHBUILDER
, **LPLPDIRECT3DRMMESHBUILDER
;
52 typedef struct IDirect3DRMMeshBuilder2
*LPDIRECT3DRMMESHBUILDER2
, **LPLPDIRECT3DRMMESHBUILDER2
;
53 typedef struct IDirect3DRMMeshBuilder3
*LPDIRECT3DRMMESHBUILDER3
, **LPLPDIRECT3DRMMESHBUILDER3
;
54 typedef struct IDirect3DRMFace
*LPDIRECT3DRMFACE
, **LPLPDIRECT3DRMFACE
;
55 typedef struct IDirect3DRMFace2
*LPDIRECT3DRMFACE2
, **LPLPDIRECT3DRMFACE2
;
56 typedef struct IDirect3DRMLight
*LPDIRECT3DRMLIGHT
, **LPLPDIRECT3DRMLIGHT
;
57 typedef struct IDirect3DRMTexture
*LPDIRECT3DRMTEXTURE
, **LPLPDIRECT3DRMTEXTURE
;
58 typedef struct IDirect3DRMTexture2
*LPDIRECT3DRMTEXTURE2
, **LPLPDIRECT3DRMTEXTURE2
;
59 typedef struct IDirect3DRMTexture3
*LPDIRECT3DRMTEXTURE3
, **LPLPDIRECT3DRMTEXTURE3
;
60 typedef struct IDirect3DRMWrap
*LPDIRECT3DRMWRAP
, **LPLPDIRECT3DRMWRAP
;
61 typedef struct IDirect3DRMMaterial
*LPDIRECT3DRMMATERIAL
, **LPLPDIRECT3DRMMATERIAL
;
62 typedef struct IDirect3DRMMaterial2
*LPDIRECT3DRMMATERIAL2
, **LPLPDIRECT3DRMMATERIAL2
;
63 typedef struct IDirect3DRMAnimation
*LPDIRECT3DRMANIMATION
, **LPLPDIRECT3DRMANIMATION
;
64 typedef struct IDirect3DRMAnimation2
*LPDIRECT3DRMANIMATION2
, **LPLPDIRECT3DRMANIMATION2
;
65 typedef struct IDirect3DRMAnimationSet
*LPDIRECT3DRMANIMATIONSET
, **LPLPDIRECT3DRMANIMATIONSET
;
66 typedef struct IDirect3DRMAnimationSet2
*LPDIRECT3DRMANIMATIONSET2
, **LPLPDIRECT3DRMANIMATIONSET2
;
67 typedef struct IDirect3DRMUserVisual
*LPDIRECT3DRMUSERVISUAL
, **LPLPDIRECT3DRMUSERVISUAL
;
68 typedef struct IDirect3DRMShadow
*LPDIRECT3DRMSHADOW
, **LPLPDIRECT3DRMSHADOW
;
69 typedef struct IDirect3DRMShadow2
*LPDIRECT3DRMSHADOW2
, **LPLPDIRECT3DRMSHADOW2
;
70 typedef struct IDirect3DRMArray
*LPDIRECT3DRMARRAY
, **LPLPDIRECT3DRMARRAY
;
71 typedef struct IDirect3DRMObjectArray
*LPDIRECT3DRMOBJECTARRAY
, **LPLPDIRECT3DRMOBJECTARRAY
;
72 typedef struct IDirect3DRMDeviceArray
*LPDIRECT3DRMDEVICEARRAY
, **LPLPDIRECT3DRMDEVICEARRAY
;
73 typedef struct IDirect3DRMFaceArray
*LPDIRECT3DRMFACEARRAY
, **LPLPDIRECT3DRMFACEARRAY
;
74 typedef struct IDirect3DRMViewportArray
*LPDIRECT3DRMVIEWPORTARRAY
, **LPLPDIRECT3DRMVIEWPORTARRAY
;
75 typedef struct IDirect3DRMFrameArray
*LPDIRECT3DRMFRAMEARRAY
, **LPLPDIRECT3DRMFRAMEARRAY
;
76 typedef struct IDirect3DRMAnimationArray
*LPDIRECT3DRMANIMATIONARRAY
, **LPLPDIRECT3DRMANIMATIONARRAY
;
77 typedef struct IDirect3DRMVisualArray
*LPDIRECT3DRMVISUALARRAY
, **LPLPDIRECT3DRMVISUALARRAY
;
78 typedef struct IDirect3DRMPickedArray
*LPDIRECT3DRMPICKEDARRAY
, **LPLPDIRECT3DRMPICKEDARRAY
;
79 typedef struct IDirect3DRMPicked2Array
*LPDIRECT3DRMPICKED2ARRAY
, **LPLPDIRECT3DRMPICKED2ARRAY
;
80 typedef struct IDirect3DRMLightArray
*LPDIRECT3DRMLIGHTARRAY
, **LPLPDIRECT3DRMLIGHTARRAY
;
81 typedef struct IDirect3DRMProgressiveMesh
*LPDIRECT3DRMPROGRESSIVEMESH
, **LPLPDIRECT3DRMPROGRESSIVEMESH
;
82 typedef struct IDirect3DRMClippedVisual
*LPDIRECT3DRMCLIPPEDVISUAL
, **LPLPDIRECT3DRMCLIPPEDVISUAL
;
84 /* ********************************************************************
86 ******************************************************************** */
88 typedef void (__cdecl
*D3DRMOBJECTCALLBACK
)(LPDIRECT3DRMOBJECT obj
, LPVOID arg
);
89 typedef void (__cdecl
*D3DRMUPDATECALLBACK
)(LPDIRECT3DRMDEVICE obj
, LPVOID arg
, int, LPD3DRECT
);
90 typedef int (__cdecl
*D3DRMUSERVISUALCALLBACK
)(LPDIRECT3DRMUSERVISUAL obj
, LPVOID arg
,
91 D3DRMUSERVISUALREASON reason
, LPDIRECT3DRMDEVICE dev
, LPDIRECT3DRMVIEWPORT view
);
92 typedef HRESULT (__cdecl
*D3DRMLOADTEXTURECALLBACK
)(char *tex_name
, void *arg
, LPDIRECT3DRMTEXTURE
*);
93 typedef void (__cdecl
*D3DRMLOADCALLBACK
)(LPDIRECT3DRMOBJECT object
, REFIID objectguid
, LPVOID arg
);
95 typedef struct _D3DRMPICKDESC
100 } D3DRMPICKDESC
, *LPD3DRMPICKDESC
;
102 typedef struct _D3DRMPICKDESC2
111 } D3DRMPICKDESC2
, *LPD3DRMPICKDESC2
;
113 /*****************************************************************************
114 * IDirect3DRMObject interface
116 #ifdef WINE_NO_UNICODE_MACROS
119 #define INTERFACE IDirect3DRMObject
120 DECLARE_INTERFACE_(IDirect3DRMObject
,IUnknown
)
122 /*** IUnknown methods ***/
123 STDMETHOD_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
124 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
125 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
126 /*** IDirect3DRMObject methods ***/
127 STDMETHOD(Clone
)(THIS_ LPUNKNOWN pUnkOuter
, REFIID riid
, LPVOID
*ppvObj
) PURE
;
128 STDMETHOD(AddDestroyCallback
)(THIS_ D3DRMOBJECTCALLBACK
, LPVOID argument
) PURE
;
129 STDMETHOD(DeleteDestroyCallback
)(THIS_ D3DRMOBJECTCALLBACK
, LPVOID argument
) PURE
;
130 STDMETHOD(SetAppData
)(THIS_ DWORD data
) PURE
;
131 STDMETHOD_(DWORD
, GetAppData
)(THIS
) PURE
;
132 STDMETHOD(SetName
)(THIS_ LPCSTR
) PURE
;
133 STDMETHOD(GetName
)(THIS_ LPDWORD lpdwSize
, LPSTR lpName
) PURE
;
134 STDMETHOD(GetClassName
)(THIS_ LPDWORD lpdwSize
, LPSTR lpName
) PURE
;
138 #if !defined(__cplusplus) || defined(CINTERFACE)
139 /*** IUnknown methods ***/
140 #define IDirect3DRMObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
141 #define IDirect3DRMObject_AddRef(p) (p)->lpVtbl->AddRef(p)
142 #define IDirect3DRMObject_Release(p) (p)->lpVtbl->Release(p)
143 /*** IDirect3DRMObject methods ***/
144 #define IDirect3DRMObject_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
145 #define IDirect3DRMObject_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
146 #define IDirect3DRMObject_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
147 #define IDirect3DRMObject_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
148 #define IDirect3DRMObject_GetAppData(p) (p)->lpVtbl->GetAppData(p)
149 #define IDirect3DRMObject_SetName(p,a) (p)->lpVtbl->SetName(p,a)
150 #define IDirect3DRMObject_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
151 #define IDirect3DRMObject_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
153 /*** IUnknown methods ***/
154 #define IDirect3DRMObject_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
155 #define IDirect3DRMObject_AddRef(p) (p)->AddRef()
156 #define IDirect3DRMObject_Release(p) (p)->Release()
157 /*** IDirect3DRMObject methods ***/
158 #define IDirect3DRMObject_Clone(p,a,b,c) (p)->Clone(a,b,c)
159 #define IDirect3DRMObject_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
160 #define IDirect3DRMObject_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
161 #define IDirect3DRMObject_SetAppData(p,a) (p)->SetAppData(a)
162 #define IDirect3DRMObject_GetAppData(p) (p)->GetAppData()
163 #define IDirect3DRMObject_SetName(p,a) (p)->SetName(a)
164 #define IDirect3DRMObject_GetName(p,a,b) (p)->GetName(a,b)
165 #define IDirect3DRMObject_GetClassName(p,a,b) (p)->GetClassName(a,b)
168 /*****************************************************************************
169 * IDirect3DRMObject2 interface
171 #ifdef WINE_NO_UNICODE_MACROS
174 #define INTERFACE IDirect3DRMObject2
175 DECLARE_INTERFACE_(IDirect3DRMObject2
,IUnknown
)
177 /*** IUnknown methods ***/
178 STDMETHOD_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
179 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
180 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
181 /*** IDirect3DRMObject2 methods ***/
182 STDMETHOD(AddDestroyCallback
)(THIS_ D3DRMOBJECTCALLBACK pFunc
, LPVOID pArg
) PURE
;
183 STDMETHOD(Clone
)(THIS_ LPUNKNOWN pUnkOuter
, REFIID riid
, LPVOID
*ppvObj
) PURE
;
184 STDMETHOD(DeleteDestroyCallback
)(THIS_ D3DRMOBJECTCALLBACK pFunc
, LPVOID pArg
) PURE
;
185 STDMETHOD(GetClientData
)(THIS_ DWORD id
, LPVOID
* ppData
) PURE
;
186 STDMETHOD(GetDirect3DRM
)(THIS_ LPDIRECT3DRM
* ppDirect3DRM
) PURE
;
187 STDMETHOD(GetName
)(THIS_ LPDWORD pSize
, LPSTR pName
) PURE
;
188 STDMETHOD(SetClientData
)(THIS_ DWORD id
, LPVOID pData
, DWORD flags
) PURE
;
189 STDMETHOD(SetName
)(THIS_ LPCSTR pName
) PURE
;
190 STDMETHOD(GetAge
)(THIS_ DWORD flags
, LPDWORD pAge
) PURE
;
194 #if !defined(__cplusplus) || defined(CINTERFACE)
195 /*** IUnknown methods ***/
196 #define IDirect3DRMObject2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
197 #define IDirect3DRMObject2_AddRef(p) (p)->lpVtbl->AddRef(p)
198 #define IDirect3DRMObject2_Release(p) (p)->lpVtbl->Release(p)
199 /*** IDirect3DRMObject2 methods ***/
200 #define IDirect3DRMObject2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
201 #define IDirect3DRMObject2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
202 #define IDirect3DRMObject2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
203 #define IDirect3DRMObject2_GetClientData(p,a,b) (p)->lpVtbl->SetClientData(p,a,b)
204 #define IDirect3DRMObject2_GetDirect3DRM(p,a) (p)->lpVtbl->GetDirect3DRM(p,a)
205 #define IDirect3DRMObject2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
206 #define IDirect3DRMObject2_SetClientData(p,a,b,c) (p)->lpVtbl->SetClientData(p,a,b,c)
207 #define IDirect3DRMObject2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
208 #define IDirect3DRMObject2_GetAge(p,a,b) (p)->lpVtbl->GetAge(p,a,b)
210 /*** IUnknown methods ***/
211 #define IDirect3DRMObject2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
212 #define IDirect3DRMObject2_AddRef(p) (p)->AddRef()
213 #define IDirect3DRMObject2_Release(p) (p)->Release()
214 /*** IDirect3DRMObject2 methods ***/
215 #define IDirect3DRMObject2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
216 #define IDirect3DRMObject2_Clone(p,a,b,c) (p)->Clone(a,b,c)
217 #define IDirect3DRMObject2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
218 #define IDirect3DRMObject2_GetClientData(p,a,b) (p)->SetClientData(a,b)
219 #define IDirect3DRMObject2_GetDirect3DRM(p,a) (p)->GetDirect3DRM(a)
220 #define IDirect3DRMObject2_GetName(p,a,b) (p)->GetName(a,b)
221 #define IDirect3DRMObject2_SetClientData(p,a,b,c) (p)->SetClientData(a,b,c)
222 #define IDirect3DRMObject2_SetName(p,a) (p)->SetName(a)
223 #define IDirect3DRMObject2_GetAge(p,a,b) (p)->GetAge(a,b)
226 /*****************************************************************************
227 * IDirect3DRMVisual interface
229 #define INTERFACE IDirect3DRMVisual
230 DECLARE_INTERFACE_(IDirect3DRMVisual
,IDirect3DRMObject
)
232 /*** IUnknown methods ***/
233 STDMETHOD_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
234 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
235 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
236 /*** IDirect3DRMObject methods ***/
237 STDMETHOD(Clone
)(THIS_ LPUNKNOWN pUnkOuter
, REFIID riid
, LPVOID
*ppvObj
) PURE
;
238 STDMETHOD(AddDestroyCallback
)(THIS_ D3DRMOBJECTCALLBACK
, LPVOID argument
) PURE
;
239 STDMETHOD(DeleteDestroyCallback
)(THIS_ D3DRMOBJECTCALLBACK
, LPVOID argument
) PURE
;
240 STDMETHOD(SetAppData
)(THIS_ DWORD data
) PURE
;
241 STDMETHOD_(DWORD
, GetAppData
)(THIS
) PURE
;
242 STDMETHOD(SetName
)(THIS_ LPCSTR
) PURE
;
243 STDMETHOD(GetName
)(THIS_ LPDWORD lpdwSize
, LPSTR lpName
) PURE
;
244 STDMETHOD(GetClassName
)(THIS_ LPDWORD lpdwSize
, LPSTR lpName
) PURE
;
248 #if !defined(__cplusplus) || defined(CINTERFACE)
249 /*** IUnknown methods ***/
250 #define IDirect3DRMVisual_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
251 #define IDirect3DRMVisual_AddRef(p) (p)->lpVtbl->AddRef(p)
252 #define IDirect3DRMVisual_Release(p) (p)->lpVtbl->Release(p)
253 /*** IDirect3DRMObject methods ***/
254 #define IDirect3DRMVisual_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
255 #define IDirect3DRMVisual_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
256 #define IDirect3DRMVisual_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
257 #define IDirect3DRMVisual_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
258 #define IDirect3DRMVisual_GetAppData(p) (p)->lpVtbl->GetAppData(p)
259 #define IDirect3DRMVisual_SetName(p,a) (p)->lpVtbl->SetName(p,a)
260 #define IDirect3DRMVisual_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
261 #define IDirect3DRMVisual_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
263 /*** IUnknown methods ***/
264 #define IDirect3DRMVisual_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
265 #define IDirect3DRMVisual_AddRef(p) (p)->AddRef()
266 #define IDirect3DRMVisual_Release(p) (p)->Release()
267 /*** IDirect3DRMObject methods ***/
268 #define IDirect3DRMVisual_Clone(p,a,b,c) (p)->Clone(a,b,c)
269 #define IDirect3DRMVisual_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
270 #define IDirect3DRMVisual_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
271 #define IDirect3DRMVisual_SetAppData(p,a) (p)->SetAppData(a)
272 #define IDirect3DRMVisual_GetAppData(p) (p)->GetAppData()
273 #define IDirect3DRMVisual_SetName(p,a) (p)->SetName(a)
274 #define IDirect3DRMVisual_GetName(p,a,b) (p)->GetName(a,b)
275 #define IDirect3DRMVisual_GetClassName(p,a,b) (p)->GetClassName(a,b)
278 /*****************************************************************************
279 * IDirect3DRMDevice interface
281 #ifdef WINE_NO_UNICODE_MACROS
284 #define INTERFACE IDirect3DRMDevice
285 DECLARE_INTERFACE_(IDirect3DRMDevice
,IUnknown
)
287 /*** IUnknown methods ***/
288 STDMETHOD_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
289 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
290 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
291 /*** IDirect3DRMObject methods ***/
292 STDMETHOD(Clone
)(THIS_ LPUNKNOWN pUnkOuter
, REFIID riid
, LPVOID
*ppvObj
) PURE
;
293 STDMETHOD(AddDestroyCallback
)(THIS_ D3DRMOBJECTCALLBACK pFunc
, LPVOID pArg
) PURE
;
294 STDMETHOD(DeleteDestroyCallback
)(THIS_ D3DRMOBJECTCALLBACK pFunc
, LPVOID pArg
) PURE
;
295 STDMETHOD(SetAppData
)(THIS_ DWORD data
) PURE
;
296 STDMETHOD_(DWORD
, GetAppData
)(THIS
) PURE
;
297 STDMETHOD(SetName
)(THIS_ LPCSTR
) PURE
;
298 STDMETHOD(GetName
)(THIS_ LPDWORD lpdwSize
, LPSTR lpName
) PURE
;
299 STDMETHOD(GetClassName
)(THIS_ LPDWORD lpdwSize
, LPSTR lpName
) PURE
;
300 /*** IDirect3DRMDevice methods ***/
301 STDMETHOD(Init
)(THIS_ ULONG width
, ULONG height
) PURE
;
302 STDMETHOD(InitFromD3D
)(THIS_ LPDIRECT3D pD3D
, LPDIRECT3DDEVICE pD3DDev
) PURE
;
303 STDMETHOD(InitFromClipper
)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper
, LPGUID pGUID
, int width
, int height
) PURE
;
304 STDMETHOD(Update
)(THIS
) PURE
;
305 STDMETHOD(AddUpdateCallback
)(THIS_ D3DRMUPDATECALLBACK
, LPVOID arg
) PURE
;
306 STDMETHOD(DeleteUpdateCallback
)(THIS_ D3DRMUPDATECALLBACK
, LPVOID arg
) PURE
;
307 STDMETHOD(SetBufferCount
)(THIS_ DWORD
) PURE
;
308 STDMETHOD_(DWORD
, GetBufferCount
)(THIS
) PURE
;
309 STDMETHOD(SetDither
)(THIS_ BOOL
) PURE
;
310 STDMETHOD(SetShades
)(THIS_ DWORD
) PURE
;
311 STDMETHOD(SetQuality
)(THIS_ D3DRMRENDERQUALITY
) PURE
;
312 STDMETHOD(SetTextureQuality
)(THIS_ D3DRMTEXTUREQUALITY
) PURE
;
313 STDMETHOD(GetViewports
)(THIS_ LPDIRECT3DRMVIEWPORTARRAY
*return_views
) PURE
;
314 STDMETHOD_(BOOL
, GetDither
)(THIS
) PURE
;
315 STDMETHOD_(DWORD
, GetShades
)(THIS
) PURE
;
316 STDMETHOD_(DWORD
, GetHeight
)(THIS
) PURE
;
317 STDMETHOD_(DWORD
, GetWidth
)(THIS
) PURE
;
318 STDMETHOD_(DWORD
, GetTrianglesDrawn
)(THIS
) PURE
;
319 STDMETHOD_(DWORD
, GetWireframeOptions
)(THIS
) PURE
;
320 STDMETHOD_(D3DRMRENDERQUALITY
, GetQuality
)(THIS
) PURE
;
321 STDMETHOD_(D3DCOLORMODEL
, GetColorModel
)(THIS
) PURE
;
322 STDMETHOD_(D3DRMTEXTUREQUALITY
, GetTextureQuality
)(THIS
) PURE
;
323 STDMETHOD(GetDirect3DDevice
)(THIS_ LPDIRECT3DDEVICE
*) PURE
;
327 #if !defined(__cplusplus) || defined(CINTERFACE)
328 /*** IUnknown methods ***/
329 #define IDirect3DRMDevice_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
330 #define IDirect3DRMDevice_AddRef(p) (p)->lpVtbl->AddRef(p)
331 #define IDirect3DRMDevice_Release(p) (p)->lpVtbl->Release(p)
332 /*** IDirect3DRMObject methods ***/
333 #define IDirect3DRMDevice_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
334 #define IDirect3DRMDevice_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
335 #define IDirect3DRMDevice_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
336 #define IDirect3DRMDevice_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
337 #define IDirect3DRMDevice_GetAppData(p) (p)->lpVtbl->GetAppData(p)
338 #define IDirect3DRMDevice_SetName(p,a) (p)->lpVtbl->SetName(p,a)
339 #define IDirect3DRMDevice_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
340 #define IDirect3DRMDevice_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
341 /*** IDirect3DRMDevice methods ***/
342 #define IDirect3DRMDevice_Init(p,a,b) (p)->lpVtbl->Init(p,a,b)
343 #define IDirect3DRMDevice_InitFromD3D(p,a,b) (p)->lpVtbl->InitFromD3D(p,a,b)
344 #define IDirect3DRMDevice_InitFromClipper(p,a,b,c,d) (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
345 #define IDirect3DRMDevice_Update(p) (p)->lpVtbl->Update(p)
346 #define IDirect3DRMDevice_AddUpdateCallback(p,a,b) (p)->lpVtbl->AddUpdateCallback(p,a,b)
347 #define IDirect3DRMDevice_DeleteUpdateCallback(p,a,b) (p)->lpVtbl->DeleteUpdateCallback(p,a,b,c)
348 #define IDirect3DRMDevice_SetBufferCount(p,a) (p)->lpVtbl->SetBufferCount(p,a)
349 #define IDirect3DRMDevice_GetBufferCount(p) (p)->lpVtbl->GetBufferCount(p)
350 #define IDirect3DRMDevice_SetDither(p,a) (p)->lpVtbl->SetDither(p,a)
351 #define IDirect3DRMDevice_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
352 #define IDirect3DRMDevice_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
353 #define IDirect3DRMDevice_SetTextureQuality(p,a) (p)->lpVtbl->SetTextureQuality(p,a)
354 #define IDirect3DRMDevice_GetViewports(p,a) (p)->lpVtbl->GetViewports(p,a)
355 #define IDirect3DRMDevice_GetDither(p) (p)->lpVtbl->GetDither(p)
356 #define IDirect3DRMDevice_GetShades(p) (p)->lpVtbl->GetShades(p)
357 #define IDirect3DRMDevice_GetHeight(p) (p)->lpVtbl->GetHeight(p)
358 #define IDirect3DRMDevice_GetWidth(p) (p)->lpVtbl->GetWidth(p)
359 #define IDirect3DRMDevice_GetTrianglesDrawn(p) (p)->lpVtbl->GetTrianglesDrawn(p)
360 #define IDirect3DRMDevice_GetWireframeOptions(p) (p)->lpVtbl->GetWireframeOptions(p)
361 #define IDirect3DRMDevice_GetQuality(p) (p)->lpVtbl->GetQuality(p)
362 #define IDirect3DRMDevice_GetColorModel(p) (p)->lpVtbl->GetColorModel(p)
363 #define IDirect3DRMDevice_GetTextureQuality(p) (p)->lpVtbl->GetTextureQuality(p)
364 #define IDirect3DRMDevice_GetDirect3DDevice(p,a) (p)->lpVtbl->GetDirect3DDevice(p,a)
366 /*** IUnknown methods ***/
367 #define IDirect3DRMDevice_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
368 #define IDirect3DRMDevice_AddRef(p) (p)->AddRef()
369 #define IDirect3DRMDevice_Release(p) (p)->Release()
370 /*** IDirect3DRMObject methods ***/
371 #define IDirect3DRMDevice_Clone(p,a,b,c) (p)->Clone(a,b,c)
372 #define IDirect3DRMDevice_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
373 #define IDirect3DRMDevice_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
374 #define IDirect3DRMDevice_SetAppData(p,a) (p)->SetAppData(a)
375 #define IDirect3DRMDevice_GetAppData(p) (p)->GetAppData()
376 #define IDirect3DRMDevice_SetName(p,a) (p)->SetName(a)
377 #define IDirect3DRMDevice_GetName(p,a,b) (p)->GetName(a,b)
378 #define IDirect3DRMDevice_GetClassName(p,a,b) (p)->GetClassName(a,b)
379 /*** IDirect3DRMDevice methods ***/
380 #define IDirect3DRMDevice_Init(p,a,b) (p)->Init(p,a,b)
381 #define IDirect3DRMDevice_InitFromD3D(p,a,b) (p)->InitFromD3D(p,a,b)
382 #define IDirect3DRMDevice_InitFromClipper(p,a,b,c,d) (p)->InitFromClipper(p,a,b,c,d)
383 #define IDirect3DRMDevice_Update(p) (p)->Update(p)
384 #define IDirect3DRMDevice_AddUpdateCallback(p,a,b) (p)->AddUpdateCallback(p,a,b)
385 #define IDirect3DRMDevice_DeleteUpdateCallback(p,a,b) (p)->DeleteUpdateCallback(p,a,b,c)
386 #define IDirect3DRMDevice_SetBufferCount(p,a) (p)->SetBufferCount(p,a)
387 #define IDirect3DRMDevice_GetBufferCount(p) (p)->GetBufferCount(p)
388 #define IDirect3DRMDevice_SetDither(p,a) (p)->SetDither(p,a)
389 #define IDirect3DRMDevice_SetShades(p,a) (p)->SetShades(p,a)
390 #define IDirect3DRMDevice_SetQuality(p,a) (p)->SetQuality(p,a)
391 #define IDirect3DRMDevice_SetTextureQuality(p,a) (p)->SetTextureQuality(p,a)
392 #define IDirect3DRMDevice_GetViewports(p,a) (p)->GetViewports(p,a)
393 #define IDirect3DRMDevice_GetDither(p) (p)->GetDither(p)
394 #define IDirect3DRMDevice_GetShades(p) (p)->GetShades(p)
395 #define IDirect3DRMDevice_GetHeight(p) (p)->GetHeight(p)
396 #define IDirect3DRMDevice_GetWidth(p) (p)->GetWidth(p)
397 #define IDirect3DRMDevice_GetTrianglesDrawn(p) (p)->GetTrianglesDrawn(p)
398 #define IDirect3DRMDevice_GetWireframeOptions(p) (p)->GetWireframeOptions(p)
399 #define IDirect3DRMDevice_GetQuality(p) (p)->GetQuality(p)
400 #define IDirect3DRMDevice_GetColorModel(p) (p)->GetColorModel(p)
401 #define IDirect3DRMDevice_GetTextureQuality(p) (p)->GetTextureQuality(p)
402 #define IDirect3DRMDevice_GetDirect3DDevice(p,a) (p)->GetDirect3DDevice(p,a)
405 /*****************************************************************************
406 * IDirect3DRMDevice2 interface
408 #ifdef WINE_NO_UNICODE_MACROS
411 #define INTERFACE IDirect3DRMDevice2
412 DECLARE_INTERFACE_(IDirect3DRMDevice2
,IDirect3DRMDevice
)
414 /*** IUnknown methods ***/
415 STDMETHOD_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
416 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
417 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
418 /*** IDirect3DRMObject methods ***/
419 STDMETHOD(Clone
)(THIS_ LPUNKNOWN pUnkOuter
, REFIID riid
, LPVOID
*ppvObj
) PURE
;
420 STDMETHOD(AddDestroyCallback
)(THIS_ D3DRMOBJECTCALLBACK pFunc
, LPVOID pArg
) PURE
;
421 STDMETHOD(DeleteDestroyCallback
)(THIS_ D3DRMOBJECTCALLBACK pFunc
, LPVOID pArg
) PURE
;
422 STDMETHOD(SetAppData
)(THIS_ DWORD data
) PURE
;
423 STDMETHOD_(DWORD
, GetAppData
)(THIS
) PURE
;
424 STDMETHOD(SetName
)(THIS_ LPCSTR
) PURE
;
425 STDMETHOD(GetName
)(THIS_ LPDWORD lpdwSize
, LPSTR lpName
) PURE
;
426 STDMETHOD(GetClassName
)(THIS_ LPDWORD lpdwSize
, LPSTR lpName
) PURE
;
427 /*** IDirect3DRMDevice methods ***/
428 STDMETHOD(Init
)(THIS_ ULONG width
, ULONG height
) PURE
;
429 STDMETHOD(InitFromD3D
)(THIS_ LPDIRECT3D pD3D
, LPDIRECT3DDEVICE pD3DDev
) PURE
;
430 STDMETHOD(InitFromClipper
)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper
, LPGUID pGUID
, int width
, int height
) PURE
;
431 STDMETHOD(Update
)(THIS
) PURE
;
432 STDMETHOD(AddUpdateCallback
)(THIS_ D3DRMUPDATECALLBACK
, LPVOID arg
) PURE
;
433 STDMETHOD(DeleteUpdateCallback
)(THIS_ D3DRMUPDATECALLBACK
, LPVOID arg
) PURE
;
434 STDMETHOD(SetBufferCount
)(THIS_ DWORD
) PURE
;
435 STDMETHOD_(DWORD
, GetBufferCount
)(THIS
) PURE
;
436 STDMETHOD(SetDither
)(THIS_ BOOL
) PURE
;
437 STDMETHOD(SetShades
)(THIS_ DWORD
) PURE
;
438 STDMETHOD(SetQuality
)(THIS_ D3DRMRENDERQUALITY
) PURE
;
439 STDMETHOD(SetTextureQuality
)(THIS_ D3DRMTEXTUREQUALITY
) PURE
;
440 STDMETHOD(GetViewports
)(THIS_ LPDIRECT3DRMVIEWPORTARRAY
*return_views
) PURE
;
441 STDMETHOD_(BOOL
, GetDither
)(THIS
) PURE
;
442 STDMETHOD_(DWORD
, GetShades
)(THIS
) PURE
;
443 STDMETHOD_(DWORD
, GetHeight
)(THIS
) PURE
;
444 STDMETHOD_(DWORD
, GetWidth
)(THIS
) PURE
;
445 STDMETHOD_(DWORD
, GetTrianglesDrawn
)(THIS
) PURE
;
446 STDMETHOD_(DWORD
, GetWireframeOptions
)(THIS
) PURE
;
447 STDMETHOD_(D3DRMRENDERQUALITY
, GetQuality
)(THIS
) PURE
;
448 STDMETHOD_(D3DCOLORMODEL
, GetColorModel
)(THIS
) PURE
;
449 STDMETHOD_(D3DRMTEXTUREQUALITY
, GetTextureQuality
)(THIS
) PURE
;
450 STDMETHOD(GetDirect3DDevice
)(THIS_ LPDIRECT3DDEVICE
*) PURE
;
451 /*** IDirect3DRMDevice2 methods ***/
452 STDMETHOD(InitFromD3D2
)(THIS_ LPDIRECT3D2 pD3D
, LPDIRECT3DDEVICE2 pD3DDev
) PURE
;
453 STDMETHOD(InitFromSurface
)(THIS_ LPGUID pGUID
, LPDIRECTDRAW pDD
, LPDIRECTDRAWSURFACE pDDSBack
) PURE
;
454 STDMETHOD(SetRenderMode
)(THIS_ DWORD flags
) PURE
;
455 STDMETHOD_(DWORD
, GetRenderMode
)(THIS
) PURE
;
456 STDMETHOD(GetDirect3DDevice2
)(THIS_ LPDIRECT3DDEVICE2
*) PURE
;
460 #if !defined(__cplusplus) || defined(CINTERFACE)
461 /*** IUnknown methods ***/
462 #define IDirect3DRMDevice2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
463 #define IDirect3DRMDevice2_AddRef(p) (p)->lpVtbl->AddRef(p)
464 #define IDirect3DRMDevice2_Release(p) (p)->lpVtbl->Release(p)
465 /*** IDirect3DRMObject methods ***/
466 #define IDirect3DRMDevice2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
467 #define IDirect3DRMDevice2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
468 #define IDirect3DRMDevice2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
469 #define IDirect3DRMDevice2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
470 #define IDirect3DRMDevice2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
471 #define IDirect3DRMDevice2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
472 #define IDirect3DRMDevice2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
473 #define IDirect3DRMDevice2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
474 /*** IDirect3DRMDevice methods ***/
475 #define IDirect3DRMDevice2_Init(p,a,b) (p)->lpVtbl->Init(p,a,b)
476 #define IDirect3DRMDevice2_InitFromD3D(p,a,b) (p)->lpVtbl->InitFromD3D(p,a,b)
477 #define IDirect3DRMDevice2_InitFromClipper(p,a,b,c,d) (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
478 #define IDirect3DRMDevice2_Update(p) (p)->lpVtbl->Update(p)
479 #define IDirect3DRMDevice2_AddUpdateCallback(p,a,b) (p)->lpVtbl->AddUpdateCallback(p,a,b)
480 #define IDirect3DRMDevice2_DeleteUpdateCallback(p,a,b) (p)->lpVtbl->DeleteUpdateCallback(p,a,b,c)
481 #define IDirect3DRMDevice2_SetBufferCount(p,a) (p)->lpVtbl->SetBufferCount(p,a)
482 #define IDirect3DRMDevice2_GetBufferCount(p) (p)->lpVtbl->GetBufferCount(p)
483 #define IDirect3DRMDevice2_SetDither(p,a) (p)->lpVtbl->SetDither(p,a)
484 #define IDirect3DRMDevice2_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
485 #define IDirect3DRMDevice2_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
486 #define IDirect3DRMDevice2_SetTextureQuality(p,a) (p)->lpVtbl->SetTextureQuality(p,a)
487 #define IDirect3DRMDevice2_GetViewports(p,a) (p)->lpVtbl->GetViewports(p,a)
488 #define IDirect3DRMDevice2_GetDither(p) (p)->lpVtbl->GetDither(p)
489 #define IDirect3DRMDevice2_GetShades(p) (p)->lpVtbl->GetShades(p)
490 #define IDirect3DRMDevice2_GetHeight(p) (p)->lpVtbl->GetHeight(p)
491 #define IDirect3DRMDevice2_GetWidth(p) (p)->lpVtbl->GetWidth(p)
492 #define IDirect3DRMDevice2_GetTrianglesDrawn(p) (p)->lpVtbl->GetTrianglesDrawn(p)
493 #define IDirect3DRMDevice2_GetWireframeOptions(p) (p)->lpVtbl->GetWireframeOptions(p)
494 #define IDirect3DRMDevice2_GetQuality(p) (p)->lpVtbl->GetQuality(p)
495 #define IDirect3DRMDevice2_GetColorModel(p) (p)->lpVtbl->GetColorModel(p)
496 #define IDirect3DRMDevice2_GetTextureQuality(p) (p)->lpVtbl->GetTextureQuality(p)
497 #define IDirect3DRMDevice2_GetDirect3DDevice(p,a) (p)->lpVtbl->GetDirect3DDevice(p,a)
498 /*** IDirect3DRMDevice2 methods ***/
499 #define IDirect3DRMDevice2_InitFromD3D2(p,a,b) (p)->lpVtbl->InitFromD3D2(p,a,b)
500 #define IDirect3DRMDevice2_InitFromSurface(p,a,b,c) (p)->lpVtbl->InitFromSurface(p,a,b,c)
501 #define IDirect3DRMDevice2_SetRenderMode(p,a) (p)->lpVtbl->SetRenderMode(p,a)
502 #define IDirect3DRMDevice2_GetRenderMode(p) (p)->lpVtbl->GetRenderMode(p)
503 #define IDirect3DRMDevice2_GetDirect3DDevice2(p,a) (p)->lpVtbl->GetDirect3DDevice2(p,a)
505 /*** IUnknown methods ***/
506 #define IDirect3DRMDevice2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
507 #define IDirect3DRMDevice2_AddRef(p) (p)->AddRef()
508 #define IDirect3DRMDevice2_Release(p) (p)->Release()
509 /*** IDirect3DRMObject methods ***/
510 #define IDirect3DRMDevice2_Clone(p,a,b,c) (p)->Clone(a,b,c)
511 #define IDirect3DRMDevice2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
512 #define IDirect3DRMDevice2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
513 #define IDirect3DRMDevice2_SetAppData(p,a) (p)->SetAppData(a)
514 #define IDirect3DRMDevice2_GetAppData(p) (p)->GetAppData()
515 #define IDirect3DRMDevice2_SetName(p,a) (p)->SetName(a)
516 #define IDirect3DRMDevice2_GetName(p,a,b) (p)->GetName(a,b)
517 #define IDirect3DRMDevice2_GetClassName(p,a,b) (p)->GetClassName(a,b)
518 /*** IDirect3DRMDevice methods ***/
519 #define IDirect3DRMDevice2_Init(p,a,b) (p)->Init(p,a,b)
520 #define IDirect3DRMDevice2_InitFromD3D(p,a,b) (p)->InitFromD3D(p,a,b)
521 #define IDirect3DRMDevice2_InitFromClipper(p,a,b,c,d) (p)->InitFromClipper(p,a,b,c,d)
522 #define IDirect3DRMDevice2_Update(p) (p)->Update(p)
523 #define IDirect3DRMDevice2_AddUpdateCallback(p,a,b) (p)->AddUpdateCallback(p,a,b)
524 #define IDirect3DRMDevice2_DeleteUpdateCallback(p,a,b) (p)->DeleteUpdateCallback(p,a,b,c)
525 #define IDirect3DRMDevice2_SetBufferCount(p,a) (p)->SetBufferCount(p,a)
526 #define IDirect3DRMDevice2_GetBufferCount(p) (p)->GetBufferCount(p)
527 #define IDirect3DRMDevice2_SetDither(p,a) (p)->SetDither(p,a)
528 #define IDirect3DRMDevice2_SetShades(p,a) (p)->SetShades(p,a)
529 #define IDirect3DRMDevice2_SetQuality(p,a) (p)->SetQuality(p,a)
530 #define IDirect3DRMDevice2_SetTextureQuality(p,a) (p)->SetTextureQuality(p,a)
531 #define IDirect3DRMDevice2_GetViewports(p,a) (p)->GetViewports(p,a)
532 #define IDirect3DRMDevice2_GetDither(p) (p)->GetDither(p)
533 #define IDirect3DRMDevice2_GetShades(p) (p)->GetShades(p)
534 #define IDirect3DRMDevice2_GetHeight(p) (p)->GetHeight(p)
535 #define IDirect3DRMDevice2_GetWidth(p) (p)->GetWidth(p)
536 #define IDirect3DRMDevice2_GetTrianglesDrawn(p) (p)->GetTrianglesDrawn(p)
537 #define IDirect3DRMDevice2_GetWireframeOptions(p) (p)->GetWireframeOptions(p)
538 #define IDirect3DRMDevice2_GetQuality(p) (p)->GetQuality(p)
539 #define IDirect3DRMDevice2_GetColorModel(p) (p)->GetColorModel(p)
540 #define IDirect3DRMDevice2_GetTextureQuality(p) (p)->GetTextureQuality(p)
541 #define IDirect3DRMDevice2_GetDirect3DDevice(p,a) (p)->GetDirect3DDevice(p,a)
542 /*** IDirect3DRMDevice2 methods ***/
543 #define IDirect3DRMDevice2_InitFromD3D2(p,a,b) (p)->InitFromD3D2(a,b)
544 #define IDirect3DRMDevice2_InitFromSurface(p,a,b,c) (p)->InitFromSurface(a,b,c)
545 #define IDirect3DRMDevice2_SetRenderMode(p,a) (p)->SetRenderMode(a)
546 #define IDirect3DRMDevice2_GetRenderMode(p) (p)->GetRenderMode()
547 #define IDirect3DRMDevice2_GetDirect3DDevice2(p,a) (p)->GetDirect3DDevice2(a)
550 /*****************************************************************************
551 * IDirect3DRMDevice3 interface
553 #ifdef WINE_NO_UNICODE_MACROS
556 #define INTERFACE IDirect3DRMDevice3
557 DECLARE_INTERFACE_(IDirect3DRMDevice3
,IDirect3DRMObject
)
559 /*** IUnknown methods ***/
560 STDMETHOD_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
561 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
562 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
563 /*** IDirect3DRMObject methods ***/
564 STDMETHOD(Clone
)(THIS_ LPUNKNOWN pUnkOuter
, REFIID riid
, LPVOID
*ppvObj
) PURE
;
565 STDMETHOD(AddDestroyCallback
)(THIS_ D3DRMOBJECTCALLBACK pFunc
, LPVOID pArg
) PURE
;
566 STDMETHOD(DeleteDestroyCallback
)(THIS_ D3DRMOBJECTCALLBACK pFunc
, LPVOID pArg
) PURE
;
567 STDMETHOD(SetAppData
)(THIS_ DWORD data
) PURE
;
568 STDMETHOD_(DWORD
, GetAppData
)(THIS
) PURE
;
569 STDMETHOD(SetName
)(THIS_ LPCSTR
) PURE
;
570 STDMETHOD(GetName
)(THIS_ LPDWORD lpdwSize
, LPSTR lpName
) PURE
;
571 STDMETHOD(GetClassName
)(THIS_ LPDWORD lpdwSize
, LPSTR lpName
) PURE
;
572 /*** IDirect3DRMDevice methods ***/
573 STDMETHOD(Init
)(THIS_ ULONG width
, ULONG height
) PURE
;
574 STDMETHOD(InitFromD3D
)(THIS_ LPDIRECT3D pD3D
, LPDIRECT3DDEVICE pD3DDev
) PURE
;
575 STDMETHOD(InitFromClipper
)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper
, LPGUID pGUID
, int width
, int height
) PURE
;
576 STDMETHOD(Update
)(THIS
) PURE
;
577 STDMETHOD(AddUpdateCallback
)(THIS_ D3DRMUPDATECALLBACK
, LPVOID arg
) PURE
;
578 STDMETHOD(DeleteUpdateCallback
)(THIS_ D3DRMUPDATECALLBACK
, LPVOID arg
) PURE
;
579 STDMETHOD(SetBufferCount
)(THIS_ DWORD
) PURE
;
580 STDMETHOD_(DWORD
, GetBufferCount
)(THIS
) PURE
;
581 STDMETHOD(SetDither
)(THIS_ BOOL
) PURE
;
582 STDMETHOD(SetShades
)(THIS_ DWORD
) PURE
;
583 STDMETHOD(SetQuality
)(THIS_ D3DRMRENDERQUALITY
) PURE
;
584 STDMETHOD(SetTextureQuality
)(THIS_ D3DRMTEXTUREQUALITY
) PURE
;
585 STDMETHOD(GetViewports
)(THIS_ LPDIRECT3DRMVIEWPORTARRAY
*return_views
) PURE
;
586 STDMETHOD_(BOOL
, GetDither
)(THIS
) PURE
;
587 STDMETHOD_(DWORD
, GetShades
)(THIS
) PURE
;
588 STDMETHOD_(DWORD
, GetHeight
)(THIS
) PURE
;
589 STDMETHOD_(DWORD
, GetWidth
)(THIS
) PURE
;
590 STDMETHOD_(DWORD
, GetTrianglesDrawn
)(THIS
) PURE
;
591 STDMETHOD_(DWORD
, GetWireframeOptions
)(THIS
) PURE
;
592 STDMETHOD_(D3DRMRENDERQUALITY
, GetQuality
)(THIS
) PURE
;
593 STDMETHOD_(D3DCOLORMODEL
, GetColorModel
)(THIS
) PURE
;
594 STDMETHOD_(D3DRMTEXTUREQUALITY
, GetTextureQuality
)(THIS
) PURE
;
595 STDMETHOD(GetDirect3DDevice
)(THIS_ LPDIRECT3DDEVICE
*) PURE
;
596 /*** IDirect3DRMDevice2 methods ***/
597 STDMETHOD(InitFromD3D2
)(THIS_ LPDIRECT3D2 pD3D
, LPDIRECT3DDEVICE2 pD3DDev
) PURE
;
598 STDMETHOD(InitFromSurface
)(THIS_ LPGUID pGUID
, LPDIRECTDRAW pDD
, LPDIRECTDRAWSURFACE pDDSBack
) PURE
;
599 STDMETHOD(SetRenderMode
)(THIS_ DWORD flags
) PURE
;
600 STDMETHOD_(DWORD
, GetRenderMode
)(THIS
) PURE
;
601 STDMETHOD(GetDirect3DDevice2
)(THIS_ LPDIRECT3DDEVICE2
*) PURE
;
602 /*** IDirect3DRMDevice3 methods ***/
603 STDMETHOD(FindPreferredTextureFormat
)(THIS_ DWORD BitDepths
, DWORD flags
, LPDDPIXELFORMAT pDDPF
) PURE
;
604 STDMETHOD(RenderStateChange
)(THIS_ D3DRENDERSTATETYPE drsType
, DWORD val
, DWORD flags
) PURE
;
605 STDMETHOD(LightStateChange
)(THIS_ D3DLIGHTSTATETYPE drsType
, DWORD val
, DWORD flags
) PURE
;
606 STDMETHOD(GetStateChangeOptions
)(THIS_ DWORD StateClass
, DWORD StateNum
, LPDWORD pFlags
) PURE
;
607 STDMETHOD(SetStateChangeOptions
)(THIS_ DWORD StateClass
, DWORD StateNum
, DWORD flags
) PURE
;
611 #if !defined(__cplusplus) || defined(CINTERFACE)
612 /*** IUnknown methods ***/
613 #define IDirect3DRMDevice3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
614 #define IDirect3DRMDevice3_AddRef(p) (p)->lpVtbl->AddRef(p)
615 #define IDirect3DRMDevice3_Release(p) (p)->lpVtbl->Release(p)
616 /*** IDirect3DRMObject methods ***/
617 #define IDirect3DRMDevice3_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
618 #define IDirect3DRMDevice3_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
619 #define IDirect3DRMDevice3_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
620 #define IDirect3DRMDevice3_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
621 #define IDirect3DRMDevice3_GetAppData(p) (p)->lpVtbl->GetAppData(p)
622 #define IDirect3DRMDevice3_SetName(p,a) (p)->lpVtbl->SetName(p,a)
623 #define IDirect3DRMDevice3_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
624 #define IDirect3DRMDevice3_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
625 /*** IDirect3DRMDevice methods ***/
626 #define IDirect3DRMDevice3_Init(p,a,b) (p)->lpVtbl->Init(p,a,b)
627 #define IDirect3DRMDevice3_InitFromD3D(p,a,b) (p)->lpVtbl->InitFromD3D(p,a,b)
628 #define IDirect3DRMDevice3_InitFromClipper(p,a,b,c,d) (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
629 #define IDirect3DRMDevice3_Update(p) (p)->lpVtbl->Update(p)
630 #define IDirect3DRMDevice3_AddUpdateCallback(p,a,b) (p)->lpVtbl->AddUpdateCallback(p,a,b)
631 #define IDirect3DRMDevice3_DeleteUpdateCallback(p,a,b) (p)->lpVtbl->DeleteUpdateCallback(p,a,b,c)
632 #define IDirect3DRMDevice3_SetBufferCount(p,a) (p)->lpVtbl->SetBufferCount(p,a)
633 #define IDirect3DRMDevice3_GetBufferCount(p) (p)->lpVtbl->GetBufferCount(p)
634 #define IDirect3DRMDevice3_SetDither(p,a) (p)->lpVtbl->SetDither(p,a)
635 #define IDirect3DRMDevice3_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
636 #define IDirect3DRMDevice3_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
637 #define IDirect3DRMDevice3_SetTextureQuality(p,a) (p)->lpVtbl->SetTextureQuality(p,a)
638 #define IDirect3DRMDevice3_GetViewports(p,a) (p)->lpVtbl->GetViewports(p,a)
639 #define IDirect3DRMDevice3_GetDither(p) (p)->lpVtbl->GetDither(p)
640 #define IDirect3DRMDevice3_GetShades(p) (p)->lpVtbl->GetShades(p)
641 #define IDirect3DRMDevice3_GetHeight(p) (p)->lpVtbl->GetHeight(p)
642 #define IDirect3DRMDevice3_GetWidth(p) (p)->lpVtbl->GetWidth(p)
643 #define IDirect3DRMDevice3_GetTrianglesDrawn(p) (p)->lpVtbl->GetTrianglesDrawn(p)
644 #define IDirect3DRMDevice3_GetWireframeOptions(p) (p)->lpVtbl->GetWireframeOptions(p)
645 #define IDirect3DRMDevice3_GetQuality(p) (p)->lpVtbl->GetQuality(p)
646 #define IDirect3DRMDevice3_GetColorModel(p) (p)->lpVtbl->GetColorModel(p)
647 #define IDirect3DRMDevice3_GetTextureQuality(p) (p)->lpVtbl->GetTextureQuality(p)
648 #define IDirect3DRMDevice3_GetDirect3DDevice(p,a) (p)->lpVtbl->GetDirect3DDevice(p,a)
649 /*** IDirect3DRMDevice2 methods ***/
650 #define IDirect3DRMDevice3_InitFromD3D2(p,a,b) (p)->lpVtbl->InitFromD3D2(p,a,b)
651 #define IDirect3DRMDevice3_InitFromSurface(p,a,b,c) (p)->lpVtbl->InitFromSurface(p,a,b,c)
652 #define IDirect3DRMDevice3_SetRenderMode(p,a) (p)->lpVtbl->SetRenderMode(p,a)
653 #define IDirect3DRMDevice3_GetRenderMode(p) (p)->lpVtbl->GetRenderMode(p)
654 #define IDirect3DRMDevice3_GetDirect3DDevice2(p,a) (p)->lpVtbl->GetDirect3DDevice2(p,a)
655 /*** IDirect3DRMDevice3 methods ***/
656 #define IDirect3DRMDevice3_FindPreferredTextureFormat(p,a,b,c) (p)->lpVtbl->FindPreferredTextureFormat(p,a,b)
657 #define IDirect3DRMDevice3_RenderStateChange(p,a,b,c) (p)->lpVtbl->RenderStateChange(p,a,b)
658 #define IDirect3DRMDevice3_LightStateChange(p,a,b,c) (p)->lpVtbl->LightStateChange(p,a,b)
659 #define IDirect3DRMDevice3_GetStateChangeOptions(p,a,b,c) (p)->lpVtbl->GetStateChangeOptions(p,a,b)
660 #define IDirect3DRMDevice3_SetStateChangeOptions(p,a,b,c) (p)->lpVtbl->SetStateChangeOptions(p,a,b)
662 /*** IUnknown methods ***/
663 #define IDirect3DRMDevice3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
664 #define IDirect3DRMDevice3_AddRef(p) (p)->AddRef()
665 #define IDirect3DRMDevice3_Release(p) (p)->Release()
666 /*** IDirect3DRMObject methods ***/
667 #define IDirect3DRMDevice3_Clone(p,a,b,c) (p)->Clone(a,b,c)
668 #define IDirect3DRMDevice3_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
669 #define IDirect3DRMDevice3_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
670 #define IDirect3DRMDevice3_SetAppData(p,a) (p)->SetAppData(a)
671 #define IDirect3DRMDevice3_GetAppData(p) (p)->GetAppData()
672 #define IDirect3DRMDevice3_SetName(p,a) (p)->SetName(a)
673 #define IDirect3DRMDevice3_GetName(p,a,b) (p)->GetName(a,b)
674 #define IDirect3DRMDevice3_GetClassName(p,a,b) (p)->GetClassName(a,b)
675 /*** IDirect3DRMDevice methods ***/
676 #define IDirect3DRMDevice3_Init(p,a,b) (p)->Init(p,a,b)
677 #define IDirect3DRMDevice3_InitFromD3D(p,a,b) (p)->InitFromD3D(p,a,b)
678 #define IDirect3DRMDevice3_InitFromClipper(p,a,b,c,d) (p)->InitFromClipper(p,a,b,c,d)
679 #define IDirect3DRMDevice3_Update(p) (p)->Update(p)
680 #define IDirect3DRMDevice3_AddUpdateCallback(p,a,b) (p)->AddUpdateCallback(p,a,b)
681 #define IDirect3DRMDevice3_DeleteUpdateCallback(p,a,b) (p)->DeleteUpdateCallback(p,a,b,c)
682 #define IDirect3DRMDevice3_SetBufferCount(p,a) (p)->SetBufferCount(p,a)
683 #define IDirect3DRMDevice3_GetBufferCount(p) (p)->GetBufferCount(p)
684 #define IDirect3DRMDevice3_SetDither(p,a) (p)->SetDither(p,a)
685 #define IDirect3DRMDevice3_SetShades(p,a) (p)->SetShades(p,a)
686 #define IDirect3DRMDevice3_SetQuality(p,a) (p)->SetQuality(p,a)
687 #define IDirect3DRMDevice3_SetTextureQuality(p,a) (p)->SetTextureQuality(p,a)
688 #define IDirect3DRMDevice3_GetViewports(p,a) (p)->GetViewports(p,a)
689 #define IDirect3DRMDevice3_GetDither(p) (p)->GetDither(p)
690 #define IDirect3DRMDevice3_GetShades(p) (p)->GetShades(p)
691 #define IDirect3DRMDevice3_GetHeight(p) (p)->GetHeight(p)
692 #define IDirect3DRMDevice3_GetWidth(p) (p)->GetWidth(p)
693 #define IDirect3DRMDevice3_GetTrianglesDrawn(p) (p)->GetTrianglesDrawn(p)
694 #define IDirect3DRMDevice3_GetWireframeOptions(p) (p)->GetWireframeOptions(p)
695 #define IDirect3DRMDevice3_GetQuality(p) (p)->GetQuality(p)
696 #define IDirect3DRMDevice3_GetColorModel(p) (p)->GetColorModel(p)
697 #define IDirect3DRMDevice3_GetTextureQuality(p) (p)->GetTextureQuality(p)
698 #define IDirect3DRMDevice3_GetDirect3DDevice(p,a) (p)->GetDirect3DDevice(p,a)
699 /*** IDirect3DRMDevice2 methods ***/
700 #define IDirect3DRMDevice3_InitFromD3D2(p,a,b) (p)->InitFromD3D2(a,b)
701 #define IDirect3DRMDevice3_InitFromSurface(p,a,b,c) (p)->InitFromSurface(a,b,c)
702 #define IDirect3DRMDevice3_SetRenderMode(p,a) (p)->SetRenderMode(a)
703 #define IDirect3DRMDevice3_GetRenderMode(p) (p)->GetRenderMode()
704 #define IDirect3DRMDevice3_GetDirect3DDevice2(p,a) (p)->GetDirect3DDevice2(a)
705 /*** IDirect3DRMDevice3 methods ***/
706 #define IDirect3DRMDevice3_FindPreferredTextureFormat(p,a,b,c) (p)->FindPreferredTextureFormat(a,b,c)
707 #define IDirect3DRMDevice3_RenderStateChange(p,a,b,c) (p)->RenderStateChange(a,b,c)
708 #define IDirect3DRMDevice3_LightStateChange(p,a,b,c) (p)->LightStateChange(a,b,c)
709 #define IDirect3DRMDevice3_GetStateChangeOptions(p,a,b,c) (p)->GetStateChangeOptions(a,b,c)
710 #define IDirect3DRMDevice3_SetStateChangeOptions(p,a,b,c) (p)->SetStateChangeOptions(a,b,c)
717 #endif /* __D3DRMOBJ_H__ */