- factorize the D3D1/2 draw_primitive code with the new strided function
[wine] / dlls / ddraw / d3ddevice / main.h
1 /*
2  * Copyright 2002 Lionel Ulmer
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #include "config.h"
20
21 /* This is defined here so as to be able to put them in 'drivers' */
22
23 HRESULT WINAPI
24 Main_IDirect3DDeviceImpl_7_3T_2T_1T_QueryInterface(LPDIRECT3DDEVICE7 iface,
25                                                    REFIID riid,
26                                                    LPVOID* obp);
27
28 ULONG WINAPI
29 Main_IDirect3DDeviceImpl_7_3T_2T_1T_AddRef(LPDIRECT3DDEVICE7 iface);
30
31 ULONG WINAPI
32 Main_IDirect3DDeviceImpl_7_3T_2T_1T_Release(LPDIRECT3DDEVICE7 iface);
33
34 HRESULT WINAPI
35 Main_IDirect3DDeviceImpl_7_GetCaps(LPDIRECT3DDEVICE7 iface,
36                                    LPD3DDEVICEDESC7 lpD3DHELDevDesc);
37
38 HRESULT WINAPI
39 Main_IDirect3DDeviceImpl_7_3T_EnumTextureFormats(LPDIRECT3DDEVICE7 iface,
40                                                  LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc,
41                                                  LPVOID lpArg);
42
43 HRESULT WINAPI
44 Main_IDirect3DDeviceImpl_7_3T_2T_1T_BeginScene(LPDIRECT3DDEVICE7 iface);
45
46 HRESULT WINAPI
47 Main_IDirect3DDeviceImpl_7_3T_2T_1T_EndScene(LPDIRECT3DDEVICE7 iface);
48
49 HRESULT WINAPI
50 Main_IDirect3DDeviceImpl_7_3T_2T_1T_GetDirect3D(LPDIRECT3DDEVICE7 iface,
51                                                 LPDIRECT3D7* lplpDirect3D3);
52
53 HRESULT WINAPI
54 Main_IDirect3DDeviceImpl_7_3T_2T_SetRenderTarget(LPDIRECT3DDEVICE7 iface,
55                                                  LPDIRECTDRAWSURFACE7 lpNewRenderTarget,
56                                                  DWORD dwFlags);
57
58 HRESULT WINAPI
59 Main_IDirect3DDeviceImpl_7_3T_2T_GetRenderTarget(LPDIRECT3DDEVICE7 iface,
60                                                  LPDIRECTDRAWSURFACE7* lplpRenderTarget);
61
62 HRESULT WINAPI
63 Main_IDirect3DDeviceImpl_7_Clear(LPDIRECT3DDEVICE7 iface,
64                                  DWORD dwCount,
65                                  LPD3DRECT lpRects,
66                                  DWORD dwFlags,
67                                  D3DCOLOR dwColor,
68                                  D3DVALUE dvZ,
69                                  DWORD dwStencil);
70
71 HRESULT WINAPI
72 Main_IDirect3DDeviceImpl_7_3T_2T_SetTransform(LPDIRECT3DDEVICE7 iface,
73                                               D3DTRANSFORMSTATETYPE dtstTransformStateType,
74                                               LPD3DMATRIX lpD3DMatrix);
75
76 HRESULT WINAPI
77 Main_IDirect3DDeviceImpl_7_3T_2T_GetTransform(LPDIRECT3DDEVICE7 iface,
78                                               D3DTRANSFORMSTATETYPE dtstTransformStateType,
79                                               LPD3DMATRIX lpD3DMatrix);
80
81 HRESULT WINAPI
82 Main_IDirect3DDeviceImpl_7_SetViewport(LPDIRECT3DDEVICE7 iface,
83                                        LPD3DVIEWPORT7 lpData);
84
85 HRESULT WINAPI
86 Main_IDirect3DDeviceImpl_7_3T_2T_MultiplyTransform(LPDIRECT3DDEVICE7 iface,
87                                                    D3DTRANSFORMSTATETYPE dtstTransformStateType,
88                                                    LPD3DMATRIX lpD3DMatrix);
89
90 HRESULT WINAPI
91 Main_IDirect3DDeviceImpl_7_GetViewport(LPDIRECT3DDEVICE7 iface,
92                                        LPD3DVIEWPORT7 lpData);
93
94 HRESULT WINAPI
95 Main_IDirect3DDeviceImpl_7_SetMaterial(LPDIRECT3DDEVICE7 iface,
96                                        LPD3DMATERIAL7 lpMat);
97
98 HRESULT WINAPI
99 Main_IDirect3DDeviceImpl_7_GetMaterial(LPDIRECT3DDEVICE7 iface,
100                                        LPD3DMATERIAL7 lpMat);
101
102 HRESULT WINAPI
103 Main_IDirect3DDeviceImpl_7_SetLight(LPDIRECT3DDEVICE7 iface,
104                                     DWORD dwLightIndex,
105                                     LPD3DLIGHT7 lpLight);
106
107 HRESULT WINAPI
108 Main_IDirect3DDeviceImpl_7_GetLight(LPDIRECT3DDEVICE7 iface,
109                                     DWORD dwLightIndex,
110                                     LPD3DLIGHT7 lpLight);
111
112 HRESULT WINAPI
113 Main_IDirect3DDeviceImpl_7_3T_2T_SetRenderState(LPDIRECT3DDEVICE7 iface,
114                                                 D3DRENDERSTATETYPE dwRenderStateType,
115                                                 DWORD dwRenderState);
116
117 HRESULT WINAPI
118 Main_IDirect3DDeviceImpl_7_3T_2T_GetRenderState(LPDIRECT3DDEVICE7 iface,
119                                                 D3DRENDERSTATETYPE dwRenderStateType,
120                                                 LPDWORD lpdwRenderState);
121
122 HRESULT WINAPI
123 Main_IDirect3DDeviceImpl_7_BeginStateBlock(LPDIRECT3DDEVICE7 iface);
124
125 HRESULT WINAPI
126 Main_IDirect3DDeviceImpl_7_EndStateBlock(LPDIRECT3DDEVICE7 iface,
127                                          LPDWORD lpdwBlockHandle);
128
129 HRESULT WINAPI
130 Main_IDirect3DDeviceImpl_7_PreLoad(LPDIRECT3DDEVICE7 iface,
131                                    LPDIRECTDRAWSURFACE7 lpddsTexture);
132
133 HRESULT WINAPI
134 Main_IDirect3DDeviceImpl_7_3T_DrawPrimitive(LPDIRECT3DDEVICE7 iface,
135                                             D3DPRIMITIVETYPE d3dptPrimitiveType,
136                                             DWORD d3dvtVertexType,
137                                             LPVOID lpvVertices,
138                                             DWORD dwVertexCount,
139                                             DWORD dwFlags);
140
141 HRESULT WINAPI
142 Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitive(LPDIRECT3DDEVICE7 iface,
143                                                    D3DPRIMITIVETYPE d3dptPrimitiveType,
144                                                    DWORD d3dvtVertexType,
145                                                    LPVOID lpvVertices,
146                                                    DWORD dwVertexCount,
147                                                    LPWORD dwIndices,
148                                                    DWORD dwIndexCount,
149                                                    DWORD dwFlags);
150
151 HRESULT WINAPI
152 Main_IDirect3DDeviceImpl_7_3T_2T_SetClipStatus(LPDIRECT3DDEVICE7 iface,
153                                                LPD3DCLIPSTATUS lpD3DClipStatus);
154
155 HRESULT WINAPI
156 Main_IDirect3DDeviceImpl_7_3T_2T_GetClipStatus(LPDIRECT3DDEVICE7 iface,
157                                                LPD3DCLIPSTATUS lpD3DClipStatus);
158
159 HRESULT WINAPI
160 Main_IDirect3DDeviceImpl_7_3T_DrawPrimitiveStrided(LPDIRECT3DDEVICE7 iface,
161                                                    D3DPRIMITIVETYPE d3dptPrimitiveType,
162                                                    DWORD dwVertexType,
163                                                    LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
164                                                    DWORD dwVertexCount,
165                                                    DWORD dwFlags);
166
167 HRESULT WINAPI
168 Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitiveStrided(LPDIRECT3DDEVICE7 iface,
169                                                           D3DPRIMITIVETYPE d3dptPrimitiveType,
170                                                           DWORD dwVertexType,
171                                                           LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
172                                                           DWORD dwVertexCount,
173                                                           LPWORD lpIndex,
174                                                           DWORD dwIndexCount,
175                                                           DWORD dwFlags);
176
177 HRESULT WINAPI
178 Main_IDirect3DDeviceImpl_7_DrawPrimitiveVB(LPDIRECT3DDEVICE7 iface,
179                                            D3DPRIMITIVETYPE d3dptPrimitiveType,
180                                            LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf,
181                                            DWORD dwStartVertex,
182                                            DWORD dwNumVertices,
183                                            DWORD dwFlags);
184
185 HRESULT WINAPI
186 Main_IDirect3DDeviceImpl_7_DrawIndexedPrimitiveVB(LPDIRECT3DDEVICE7 iface,
187                                                   D3DPRIMITIVETYPE d3dptPrimitiveType,
188                                                   LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf,
189                                                   DWORD dwStartVertex,
190                                                   DWORD dwNumVertices,
191                                                   LPWORD lpwIndices,
192                                                   DWORD dwIndexCount,
193                                                   DWORD dwFlags);
194
195 HRESULT WINAPI
196 Main_IDirect3DDeviceImpl_7_3T_ComputeSphereVisibility(LPDIRECT3DDEVICE7 iface,
197                                                       LPD3DVECTOR lpCenters,
198                                                       LPD3DVALUE lpRadii,
199                                                       DWORD dwNumSpheres,
200                                                       DWORD dwFlags,
201                                                       LPDWORD lpdwReturnValues);
202
203 HRESULT WINAPI
204 Main_IDirect3DDeviceImpl_7_GetTexture(LPDIRECT3DDEVICE7 iface,
205                                       DWORD dwStage,
206                                       LPDIRECTDRAWSURFACE7* lpTexture);
207
208 HRESULT WINAPI
209 Main_IDirect3DDeviceImpl_7_SetTexture(LPDIRECT3DDEVICE7 iface,
210                                       DWORD dwStage,
211                                       LPDIRECTDRAWSURFACE7 lpTexture);
212
213 HRESULT WINAPI
214 Main_IDirect3DDeviceImpl_7_3T_GetTextureStageState(LPDIRECT3DDEVICE7 iface,
215                                                    DWORD dwStage,
216                                                    D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
217                                                    LPDWORD lpdwState);
218
219 HRESULT WINAPI
220 Main_IDirect3DDeviceImpl_7_3T_SetTextureStageState(LPDIRECT3DDEVICE7 iface,
221                                                    DWORD dwStage,
222                                                    D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
223                                                    DWORD dwState);
224
225 HRESULT WINAPI
226 Main_IDirect3DDeviceImpl_7_3T_ValidateDevice(LPDIRECT3DDEVICE7 iface,
227                                              LPDWORD lpdwPasses);
228
229 HRESULT WINAPI
230 Main_IDirect3DDeviceImpl_7_ApplyStateBlock(LPDIRECT3DDEVICE7 iface,
231                                            DWORD dwBlockHandle);
232
233 HRESULT WINAPI
234 Main_IDirect3DDeviceImpl_7_CaptureStateBlock(LPDIRECT3DDEVICE7 iface,
235                                              DWORD dwBlockHandle);
236
237 HRESULT WINAPI
238 Main_IDirect3DDeviceImpl_7_DeleteStateBlock(LPDIRECT3DDEVICE7 iface,
239                                             DWORD dwBlockHandle);
240
241 HRESULT WINAPI
242 Main_IDirect3DDeviceImpl_7_CreateStateBlock(LPDIRECT3DDEVICE7 iface,
243                                             D3DSTATEBLOCKTYPE d3dsbType,
244                                             LPDWORD lpdwBlockHandle);
245
246 HRESULT WINAPI
247 Main_IDirect3DDeviceImpl_7_Load(LPDIRECT3DDEVICE7 iface,
248                                 LPDIRECTDRAWSURFACE7 lpDestTex,
249                                 LPPOINT lpDestPoint,
250                                 LPDIRECTDRAWSURFACE7 lpSrcTex,
251                                 LPRECT lprcSrcRect,
252                                 DWORD dwFlags);
253
254 HRESULT WINAPI
255 Main_IDirect3DDeviceImpl_7_LightEnable(LPDIRECT3DDEVICE7 iface,
256                                        DWORD dwLightIndex,
257                                        BOOL bEnable);
258
259 HRESULT WINAPI
260 Main_IDirect3DDeviceImpl_7_GetLightEnable(LPDIRECT3DDEVICE7 iface,
261                                           DWORD dwLightIndex,
262                                           BOOL* pbEnable);
263
264 HRESULT WINAPI
265 Main_IDirect3DDeviceImpl_7_SetClipPlane(LPDIRECT3DDEVICE7 iface,
266                                         DWORD dwIndex,
267                                         D3DVALUE* pPlaneEquation);
268
269 HRESULT WINAPI
270 Main_IDirect3DDeviceImpl_7_GetClipPlane(LPDIRECT3DDEVICE7 iface,
271                                         DWORD dwIndex,
272                                         D3DVALUE* pPlaneEquation);
273
274 HRESULT WINAPI
275 Main_IDirect3DDeviceImpl_7_GetInfo(LPDIRECT3DDEVICE7 iface,
276                                    DWORD dwDevInfoID,
277                                    LPVOID pDevInfoStruct,
278                                    DWORD dwSize);
279
280 HRESULT WINAPI
281 Main_IDirect3DDeviceImpl_3_2T_1T_GetCaps(LPDIRECT3DDEVICE3 iface,
282                                          LPD3DDEVICEDESC lpD3DHWDevDesc,
283                                          LPD3DDEVICEDESC lpD3DHELDevDesc);
284
285 HRESULT WINAPI
286 Main_IDirect3DDeviceImpl_3_2T_1T_GetStats(LPDIRECT3DDEVICE3 iface,
287                                           LPD3DSTATS lpD3DStats);
288
289 HRESULT WINAPI
290 Main_IDirect3DDeviceImpl_3_2T_1T_AddViewport(LPDIRECT3DDEVICE3 iface,
291                                              LPDIRECT3DVIEWPORT3 lpDirect3DViewport3);
292
293 HRESULT WINAPI
294 Main_IDirect3DDeviceImpl_3_2T_1T_DeleteViewport(LPDIRECT3DDEVICE3 iface,
295                                                 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3);
296
297 HRESULT WINAPI
298 Main_IDirect3DDeviceImpl_3_2T_1T_NextViewport(LPDIRECT3DDEVICE3 iface,
299                                               LPDIRECT3DVIEWPORT3 lpDirect3DViewport3,
300                                               LPDIRECT3DVIEWPORT3* lplpDirect3DViewport3,
301                                               DWORD dwFlags);
302
303 HRESULT WINAPI
304 Main_IDirect3DDeviceImpl_3_2T_SetCurrentViewport(LPDIRECT3DDEVICE3 iface,
305                                                  LPDIRECT3DVIEWPORT3 lpDirect3DViewport3);
306
307 HRESULT WINAPI
308 Main_IDirect3DDeviceImpl_3_2T_GetCurrentViewport(LPDIRECT3DDEVICE3 iface,
309                                                  LPDIRECT3DVIEWPORT3* lplpDirect3DViewport3);
310
311 HRESULT WINAPI
312 Main_IDirect3DDeviceImpl_3_Begin(LPDIRECT3DDEVICE3 iface,
313                                  D3DPRIMITIVETYPE d3dptPrimitiveType,
314                                  DWORD dwVertexTypeDesc,
315                                  DWORD dwFlags);
316
317 HRESULT WINAPI
318 Main_IDirect3DDeviceImpl_3_BeginIndexed(LPDIRECT3DDEVICE3 iface,
319                                         D3DPRIMITIVETYPE d3dptPrimitiveType,
320                                         DWORD d3dvtVertexType,
321                                         LPVOID lpvVertices,
322                                         DWORD dwNumVertices,
323                                         DWORD dwFlags);
324
325 HRESULT WINAPI
326 Main_IDirect3DDeviceImpl_3_2T_Vertex(LPDIRECT3DDEVICE3 iface,
327                                      LPVOID lpVertexType);
328
329 HRESULT WINAPI
330 Main_IDirect3DDeviceImpl_3_2T_Index(LPDIRECT3DDEVICE3 iface,
331                                     WORD wVertexIndex);
332
333 HRESULT WINAPI
334 Main_IDirect3DDeviceImpl_3_2T_End(LPDIRECT3DDEVICE3 iface,
335                                   DWORD dwFlags);
336
337 HRESULT WINAPI
338 Main_IDirect3DDeviceImpl_3_2T_GetLightState(LPDIRECT3DDEVICE3 iface,
339                                             D3DLIGHTSTATETYPE dwLightStateType,
340                                             LPDWORD lpdwLightState);
341
342 HRESULT WINAPI
343 Main_IDirect3DDeviceImpl_3_2T_SetLightState(LPDIRECT3DDEVICE3 iface,
344                                             D3DLIGHTSTATETYPE dwLightStateType,
345                                             DWORD dwLightState);
346
347 HRESULT WINAPI
348 Main_IDirect3DDeviceImpl_3_DrawPrimitiveVB(LPDIRECT3DDEVICE3 iface,
349                                            D3DPRIMITIVETYPE d3dptPrimitiveType,
350                                            LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf,
351                                            DWORD dwStartVertex,
352                                            DWORD dwNumVertices,
353                                            DWORD dwFlags);
354
355 HRESULT WINAPI
356 Main_IDirect3DDeviceImpl_3_DrawIndexedPrimitiveVB(LPDIRECT3DDEVICE3 iface,
357                                                   D3DPRIMITIVETYPE d3dptPrimitiveType,
358                                                   LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf,
359                                                   LPWORD lpwIndices,
360                                                   DWORD dwIndexCount,
361                                                   DWORD dwFlags);
362
363 HRESULT WINAPI
364 Main_IDirect3DDeviceImpl_3_GetTexture(LPDIRECT3DDEVICE3 iface,
365                                       DWORD dwStage,
366                                       LPDIRECT3DTEXTURE2* lplpTexture2);
367
368 HRESULT WINAPI
369 Main_IDirect3DDeviceImpl_3_SetTexture(LPDIRECT3DDEVICE3 iface,
370                                       DWORD dwStage,
371                                       LPDIRECT3DTEXTURE2 lpTexture2);
372
373 HRESULT WINAPI
374 Main_IDirect3DDeviceImpl_2_SwapTextureHandles(LPDIRECT3DDEVICE2 iface,
375                                               LPDIRECT3DTEXTURE2 lpD3DTex1,
376                                               LPDIRECT3DTEXTURE2 lpD3DTex2);
377
378 HRESULT WINAPI
379 Main_IDirect3DDeviceImpl_2_1T_EnumTextureFormats(LPDIRECT3DDEVICE2 iface,
380                                                  LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc,
381                                                  LPVOID lpArg);
382
383 HRESULT WINAPI
384 Main_IDirect3DDeviceImpl_2_Begin(LPDIRECT3DDEVICE2 iface,
385                                  D3DPRIMITIVETYPE d3dpt,
386                                  D3DVERTEXTYPE dwVertexTypeDesc,
387                                  DWORD dwFlags);
388
389 HRESULT WINAPI
390 Main_IDirect3DDeviceImpl_2_BeginIndexed(LPDIRECT3DDEVICE2 iface,
391                                         D3DPRIMITIVETYPE d3dptPrimitiveType,
392                                         D3DVERTEXTYPE d3dvtVertexType,
393                                         LPVOID lpvVertices,
394                                         DWORD dwNumVertices,
395                                         DWORD dwFlags);
396
397 HRESULT WINAPI
398 Main_IDirect3DDeviceImpl_2_DrawPrimitive(LPDIRECT3DDEVICE2 iface,
399                                          D3DPRIMITIVETYPE d3dptPrimitiveType,
400                                          D3DVERTEXTYPE d3dvtVertexType,
401                                          LPVOID lpvVertices,
402                                          DWORD dwVertexCount,
403                                          DWORD dwFlags);
404
405 HRESULT WINAPI
406 Main_IDirect3DDeviceImpl_2_DrawIndexedPrimitive(LPDIRECT3DDEVICE2 iface,
407                                                 D3DPRIMITIVETYPE d3dptPrimitiveType,
408                                                 D3DVERTEXTYPE d3dvtVertexType,
409                                                 LPVOID lpvVertices,
410                                                 DWORD dwVertexCount,
411                                                 LPWORD dwIndices,
412                                                 DWORD dwIndexCount,
413                                                 DWORD dwFlags);
414
415 HRESULT WINAPI
416 Main_IDirect3DDeviceImpl_1_Initialize(LPDIRECT3DDEVICE iface,
417                                       LPDIRECT3D lpDirect3D,
418                                       LPGUID lpGUID,
419                                       LPD3DDEVICEDESC lpD3DDVDesc);
420
421 HRESULT WINAPI
422 Main_IDirect3DDeviceImpl_1_SwapTextureHandles(LPDIRECT3DDEVICE iface,
423                                               LPDIRECT3DTEXTURE lpD3Dtex1,
424                                               LPDIRECT3DTEXTURE lpD3DTex2);
425
426 HRESULT WINAPI
427 Main_IDirect3DDeviceImpl_1_CreateExecuteBuffer(LPDIRECT3DDEVICE iface,
428                                                LPD3DEXECUTEBUFFERDESC lpDesc,
429                                                LPDIRECT3DEXECUTEBUFFER* lplpDirect3DExecuteBuffer,
430                                                IUnknown* pUnkOuter);
431
432 HRESULT WINAPI
433 Main_IDirect3DDeviceImpl_1_Execute(LPDIRECT3DDEVICE iface,
434                                    LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer,
435                                    LPDIRECT3DVIEWPORT lpDirect3DViewport,
436                                    DWORD dwFlags);
437
438 HRESULT WINAPI
439 Main_IDirect3DDeviceImpl_1_Pick(LPDIRECT3DDEVICE iface,
440                                 LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer,
441                                 LPDIRECT3DVIEWPORT lpDirect3DViewport,
442                                 DWORD dwFlags,
443                                 LPD3DRECT lpRect);
444
445 HRESULT WINAPI
446 Main_IDirect3DDeviceImpl_1_GetPickRecords(LPDIRECT3DDEVICE iface,
447                                           LPDWORD lpCount,
448                                           LPD3DPICKRECORD lpD3DPickRec);
449
450 HRESULT WINAPI
451 Main_IDirect3DDeviceImpl_1_CreateMatrix(LPDIRECT3DDEVICE iface,
452                                         LPD3DMATRIXHANDLE lpD3DMatHandle);
453
454 HRESULT WINAPI
455 Main_IDirect3DDeviceImpl_1_SetMatrix(LPDIRECT3DDEVICE iface,
456                                      D3DMATRIXHANDLE D3DMatHandle,
457                                      LPD3DMATRIX lpD3DMatrix);
458
459 HRESULT WINAPI
460 Main_IDirect3DDeviceImpl_1_GetMatrix(LPDIRECT3DDEVICE iface,
461                                      D3DMATRIXHANDLE D3DMatHandle,
462                                      LPD3DMATRIX lpD3DMatrix);
463
464 HRESULT WINAPI
465 Main_IDirect3DDeviceImpl_1_DeleteMatrix(LPDIRECT3DDEVICE iface,
466                                         D3DMATRIXHANDLE D3DMatHandle);
467
468 HRESULT WINAPI
469 Thunk_IDirect3DDeviceImpl_3_QueryInterface(LPDIRECT3DDEVICE3 iface,
470                                            REFIID riid,
471                                            LPVOID* obp);
472
473 HRESULT WINAPI
474 Thunk_IDirect3DDeviceImpl_2_QueryInterface(LPDIRECT3DDEVICE2 iface,
475                                            REFIID riid,
476                                            LPVOID* obp);
477
478 HRESULT WINAPI
479 Thunk_IDirect3DDeviceImpl_1_QueryInterface(LPDIRECT3DDEVICE iface,
480                                            REFIID riid,
481                                            LPVOID* obp);
482
483 ULONG WINAPI
484 Thunk_IDirect3DDeviceImpl_3_AddRef(LPDIRECT3DDEVICE3 iface);
485
486 ULONG WINAPI
487 Thunk_IDirect3DDeviceImpl_2_AddRef(LPDIRECT3DDEVICE2 iface);
488
489 ULONG WINAPI
490 Thunk_IDirect3DDeviceImpl_1_AddRef(LPDIRECT3DDEVICE iface);
491
492 ULONG WINAPI
493 Thunk_IDirect3DDeviceImpl_3_Release(LPDIRECT3DDEVICE3 iface);
494
495 ULONG WINAPI
496 Thunk_IDirect3DDeviceImpl_2_Release(LPDIRECT3DDEVICE2 iface);
497
498 ULONG WINAPI
499 Thunk_IDirect3DDeviceImpl_1_Release(LPDIRECT3DDEVICE iface);
500
501 HRESULT WINAPI
502 Thunk_IDirect3DDeviceImpl_2_AddViewport(LPDIRECT3DDEVICE2 iface,
503                                         LPDIRECT3DVIEWPORT2 lpDirect3DViewport2);
504
505 HRESULT WINAPI
506 Thunk_IDirect3DDeviceImpl_1_AddViewport(LPDIRECT3DDEVICE iface,
507                                         LPDIRECT3DVIEWPORT lpDirect3DViewport);
508
509 HRESULT WINAPI
510 Thunk_IDirect3DDeviceImpl_2_DeleteViewport(LPDIRECT3DDEVICE2 iface,
511                                            LPDIRECT3DVIEWPORT2 lpDirect3DViewport2);
512
513 HRESULT WINAPI
514 Thunk_IDirect3DDeviceImpl_1_DeleteViewport(LPDIRECT3DDEVICE iface,
515                                            LPDIRECT3DVIEWPORT lpDirect3DViewport);
516
517 HRESULT WINAPI
518 Thunk_IDirect3DDeviceImpl_2_NextViewport(LPDIRECT3DDEVICE3 iface,
519                                          LPDIRECT3DVIEWPORT2 lpDirect3DViewport2,
520                                          LPDIRECT3DVIEWPORT2* lplpDirect3DViewport2,
521                                          DWORD dwFlags);
522
523 HRESULT WINAPI
524 Thunk_IDirect3DDeviceImpl_1_NextViewport(LPDIRECT3DDEVICE3 iface,
525                                          LPDIRECT3DVIEWPORT lpDirect3DViewport,
526                                          LPDIRECT3DVIEWPORT* lplpDirect3DViewport,
527                                          DWORD dwFlags);
528
529 HRESULT WINAPI
530 Thunk_IDirect3DDeviceImpl_3_GetDirect3D(LPDIRECT3DDEVICE3 iface,
531                                         LPDIRECT3D3* lplpDirect3D3);
532
533 HRESULT WINAPI
534 Thunk_IDirect3DDeviceImpl_2_GetDirect3D(LPDIRECT3DDEVICE2 iface,
535                                         LPDIRECT3D2* lplpDirect3D2);
536
537 HRESULT WINAPI
538 Thunk_IDirect3DDeviceImpl_1_GetDirect3D(LPDIRECT3DDEVICE iface,
539                                         LPDIRECT3D* lplpDirect3D);
540
541 HRESULT WINAPI
542 Thunk_IDirect3DDeviceImpl_2_SetCurrentViewport(LPDIRECT3DDEVICE2 iface,
543                                                LPDIRECT3DVIEWPORT2 lpDirect3DViewport2);
544
545 HRESULT WINAPI
546 Thunk_IDirect3DDeviceImpl_2_GetCurrentViewport(LPDIRECT3DDEVICE2 iface,
547                                                LPDIRECT3DVIEWPORT2* lpDirect3DViewport2);
548
549 HRESULT WINAPI
550 Thunk_IDirect3DDeviceImpl_3_EnumTextureFormats(LPDIRECT3DDEVICE3 iface,
551                                                LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc,
552                                                LPVOID lpArg);
553
554 HRESULT WINAPI
555 Thunk_IDirect3DDeviceImpl_3_BeginScene(LPDIRECT3DDEVICE3 iface);
556
557 HRESULT WINAPI
558 Thunk_IDirect3DDeviceImpl_2_BeginScene(LPDIRECT3DDEVICE2 iface);
559
560 HRESULT WINAPI
561 Thunk_IDirect3DDeviceImpl_1_BeginScene(LPDIRECT3DDEVICE iface);
562
563 HRESULT WINAPI
564 Thunk_IDirect3DDeviceImpl_3_EndScene(LPDIRECT3DDEVICE3 iface);
565
566 HRESULT WINAPI
567 Thunk_IDirect3DDeviceImpl_2_EndScene(LPDIRECT3DDEVICE2 iface);
568
569 HRESULT WINAPI
570 Thunk_IDirect3DDeviceImpl_1_EndScene(LPDIRECT3DDEVICE iface);
571
572 HRESULT WINAPI
573 Thunk_IDirect3DDeviceImpl_3_SetTransform(LPDIRECT3DDEVICE3 iface,
574                                          D3DTRANSFORMSTATETYPE dtstTransformStateType,
575                                          LPD3DMATRIX lpD3DMatrix);
576
577 HRESULT WINAPI
578 Thunk_IDirect3DDeviceImpl_2_SetTransform(LPDIRECT3DDEVICE2 iface,
579                                          D3DTRANSFORMSTATETYPE dtstTransformStateType,
580                                          LPD3DMATRIX lpD3DMatrix);
581
582 HRESULT WINAPI
583 Thunk_IDirect3DDeviceImpl_3_GetTransform(LPDIRECT3DDEVICE3 iface,
584                                          D3DTRANSFORMSTATETYPE dtstTransformStateType,
585                                          LPD3DMATRIX lpD3DMatrix);
586
587 HRESULT WINAPI
588 Thunk_IDirect3DDeviceImpl_2_GetTransform(LPDIRECT3DDEVICE2 iface,
589                                          D3DTRANSFORMSTATETYPE dtstTransformStateType,
590                                          LPD3DMATRIX lpD3DMatrix);
591
592 HRESULT WINAPI
593 Thunk_IDirect3DDeviceImpl_3_MultiplyTransform(LPDIRECT3DDEVICE3 iface,
594                                               D3DTRANSFORMSTATETYPE dtstTransformStateType,
595                                               LPD3DMATRIX lpD3DMatrix);
596
597 HRESULT WINAPI
598 Thunk_IDirect3DDeviceImpl_2_MultiplyTransform(LPDIRECT3DDEVICE2 iface,
599                                               D3DTRANSFORMSTATETYPE dtstTransformStateType,
600                                               LPD3DMATRIX lpD3DMatrix);
601
602 HRESULT WINAPI
603 Thunk_IDirect3DDeviceImpl_3_SetRenderState(LPDIRECT3DDEVICE3 iface,
604                                            D3DRENDERSTATETYPE dwRenderStateType,
605                                            DWORD dwRenderState);
606
607 HRESULT WINAPI
608 Thunk_IDirect3DDeviceImpl_2_SetRenderState(LPDIRECT3DDEVICE2 iface,
609                                            D3DRENDERSTATETYPE dwRenderStateType,
610                                            DWORD dwRenderState);
611
612 HRESULT WINAPI
613 Thunk_IDirect3DDeviceImpl_3_GetRenderState(LPDIRECT3DDEVICE3 iface,
614                                            D3DRENDERSTATETYPE dwRenderStateType,
615                                            LPDWORD lpdwRenderState);
616
617 HRESULT WINAPI
618 Thunk_IDirect3DDeviceImpl_2_GetRenderState(LPDIRECT3DDEVICE2 iface,
619                                            D3DRENDERSTATETYPE dwRenderStateType,
620                                            LPDWORD lpdwRenderState);
621
622 HRESULT WINAPI
623 Thunk_IDirect3DDeviceImpl_3_DrawPrimitive(LPDIRECT3DDEVICE3 iface,
624                                           D3DPRIMITIVETYPE d3dptPrimitiveType,
625                                           DWORD d3dvtVertexType,
626                                           LPVOID lpvVertices,
627                                           DWORD dwVertexCount,
628                                           DWORD dwFlags);
629
630 HRESULT WINAPI
631 Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitive(LPDIRECT3DDEVICE3 iface,
632                                                  D3DPRIMITIVETYPE d3dptPrimitiveType,
633                                                  DWORD d3dvtVertexType,
634                                                  LPVOID lpvVertices,
635                                                  DWORD dwVertexCount,
636                                                  LPWORD dwIndices,
637                                                  DWORD dwIndexCount,
638                                                  DWORD dwFlags);
639
640 HRESULT WINAPI
641 Thunk_IDirect3DDeviceImpl_3_SetClipStatus(LPDIRECT3DDEVICE3 iface,
642                                           LPD3DCLIPSTATUS lpD3DClipStatus);
643
644 HRESULT WINAPI
645 Thunk_IDirect3DDeviceImpl_2_SetClipStatus(LPDIRECT3DDEVICE2 iface,
646                                           LPD3DCLIPSTATUS lpD3DClipStatus);
647
648 HRESULT WINAPI
649 Thunk_IDirect3DDeviceImpl_3_GetClipStatus(LPDIRECT3DDEVICE3 iface,
650                                           LPD3DCLIPSTATUS lpD3DClipStatus);
651
652 HRESULT WINAPI
653 Thunk_IDirect3DDeviceImpl_2_GetClipStatus(LPDIRECT3DDEVICE2 iface,
654                                           LPD3DCLIPSTATUS lpD3DClipStatus);
655
656 HRESULT WINAPI
657 Thunk_IDirect3DDeviceImpl_3_DrawPrimitiveStrided(LPDIRECT3DDEVICE3 iface,
658                                                  D3DPRIMITIVETYPE d3dptPrimitiveType,
659                                                  DWORD dwVertexType,
660                                                  LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
661                                                  DWORD dwVertexCount,
662                                                  DWORD dwFlags);
663
664 HRESULT WINAPI
665 Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitiveStrided(LPDIRECT3DDEVICE3 iface,
666                                                         D3DPRIMITIVETYPE d3dptPrimitiveType,
667                                                         DWORD dwVertexType,
668                                                         LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
669                                                         DWORD dwVertexCount,
670                                                         LPWORD lpIndex,
671                                                         DWORD dwIndexCount,
672                                                         DWORD dwFlags);
673
674 HRESULT WINAPI
675 Thunk_IDirect3DDeviceImpl_3_ComputeSphereVisibility(LPDIRECT3DDEVICE3 iface,
676                                                     LPD3DVECTOR lpCenters,
677                                                     LPD3DVALUE lpRadii,
678                                                     DWORD dwNumSpheres,
679                                                     DWORD dwFlags,
680                                                     LPDWORD lpdwReturnValues);
681
682 HRESULT WINAPI
683 Thunk_IDirect3DDeviceImpl_3_GetTextureStageState(LPDIRECT3DDEVICE3 iface,
684                                                  DWORD dwStage,
685                                                  D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
686                                                  LPDWORD lpdwState);
687
688 HRESULT WINAPI
689 Thunk_IDirect3DDeviceImpl_3_SetTextureStageState(LPDIRECT3DDEVICE3 iface,
690                                                  DWORD dwStage,
691                                                  D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
692                                                  DWORD dwState);
693
694 HRESULT WINAPI
695 Thunk_IDirect3DDeviceImpl_3_ValidateDevice(LPDIRECT3DDEVICE3 iface,
696                                            LPDWORD lpdwPasses);
697
698 HRESULT WINAPI
699 Thunk_IDirect3DDeviceImpl_2_GetCaps(LPDIRECT3DDEVICE2 iface,
700                                     LPD3DDEVICEDESC lpD3DHWDevDesc,
701                                     LPD3DDEVICEDESC lpD3DHELDevDesc);
702
703 HRESULT WINAPI
704 Thunk_IDirect3DDeviceImpl_1_GetCaps(LPDIRECT3DDEVICE iface,
705                                     LPD3DDEVICEDESC lpD3DHWDevDesc,
706                                     LPD3DDEVICEDESC lpD3DHELDevDesc);
707
708 HRESULT WINAPI
709 Thunk_IDirect3DDeviceImpl_2_GetStats(LPDIRECT3DDEVICE2 iface,
710                                      LPD3DSTATS lpD3DStats);
711
712 HRESULT WINAPI
713 Thunk_IDirect3DDeviceImpl_1_GetStats(LPDIRECT3DDEVICE iface,
714                                      LPD3DSTATS lpD3DStats);
715
716 HRESULT WINAPI
717 Thunk_IDirect3DDeviceImpl_3_SetRenderTarget(LPDIRECT3DDEVICE3 iface,
718                                             LPDIRECTDRAWSURFACE4 lpNewRenderTarget,
719                                             DWORD dwFlags);
720
721 HRESULT WINAPI
722 Thunk_IDirect3DDeviceImpl_3_GetRenderTarget(LPDIRECT3DDEVICE3 iface,
723                                             LPDIRECTDRAWSURFACE4* lplpRenderTarget);
724
725 HRESULT WINAPI
726 Thunk_IDirect3DDeviceImpl_2_SetRenderTarget(LPDIRECT3DDEVICE2 iface,
727                                             LPDIRECTDRAWSURFACE lpNewRenderTarget,
728                                             DWORD dwFlags);
729
730 HRESULT WINAPI
731 Thunk_IDirect3DDeviceImpl_2_GetRenderTarget(LPDIRECT3DDEVICE2 iface,
732                                             LPDIRECTDRAWSURFACE* lplpRenderTarget);
733
734 HRESULT WINAPI
735 Thunk_IDirect3DDeviceImpl_2_Vertex(LPDIRECT3DDEVICE2 iface,
736                                    LPVOID lpVertexType);
737
738 HRESULT WINAPI
739 Thunk_IDirect3DDeviceImpl_2_Index(LPDIRECT3DDEVICE2 iface,
740                                   WORD wVertexIndex);
741
742 HRESULT WINAPI
743 Thunk_IDirect3DDeviceImpl_2_End(LPDIRECT3DDEVICE2 iface,
744                                 DWORD dwFlags);
745
746 HRESULT WINAPI
747 Thunk_IDirect3DDeviceImpl_2_GetLightState(LPDIRECT3DDEVICE2 iface,
748                                           D3DLIGHTSTATETYPE dwLightStateType,
749                                           LPDWORD lpdwLightState);
750
751 HRESULT WINAPI
752 Thunk_IDirect3DDeviceImpl_2_SetLightState(LPDIRECT3DDEVICE2 iface,
753                                           D3DLIGHTSTATETYPE dwLightStateType,
754                                           DWORD dwLightState);
755
756 HRESULT WINAPI
757 Thunk_IDirect3DDeviceImpl_1_EnumTextureFormats(LPDIRECT3DDEVICE iface,
758                                                LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc,
759                                                LPVOID lpArg);