Create a wined3d interface, and generate a wined3d object in the d3d9
[wine] / dlls / wined3d / wined3d_private.h
1 /*
2  * Direct3D wine internal private include file
3  *
4  * Copyright 2002-2003 The wine-d3d team
5  * Copyright 2002-2003 Raphael Junqueira
6  * Copyright 2004      Jason Edmeades   
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21  */
22
23 #ifndef __WINE_WINED3D_PRIVATE_H
24 #define __WINE_WINED3D_PRIVATE_H
25
26 #include <stdarg.h>
27 #define NONAMELESSUNION
28 #define NONAMELESSSTRUCT
29 #include "windef.h"
30 #include "winbase.h"
31 #include "winreg.h"
32 #include "wingdi.h"
33 #include "winuser.h"
34 #include "wine/debug.h"
35
36 #include "d3d9.h"
37 #include "d3d9types.h"
38 #include "wine/wined3d_interface.h"
39
40 extern int vs_mode;
41 #define VS_NONE 0
42 #define VS_HW   1
43 #define VS_SW   2
44
45 extern int ps_mode;
46 #define PS_NONE 0
47 #define PS_HW   1
48
49 /*****************************************************************************
50  * IWineD3D implementation structure
51  */
52 typedef struct IWineD3DImpl
53 {
54     /* IUnknown fields */
55     IWineD3DVtbl           *lpVtbl;
56     DWORD                   ref;     /* Note: Ref counting not required */
57
58     /* WineD3D Information */
59     UINT                    dxVersion;
60 } IWineD3DImpl;
61
62 extern IWineD3DVtbl IWineD3D_Vtbl;
63
64
65
66 #if 0 /* Needs fixing during rework */
67 /*****************************************************************************
68  * IDirect3DVertexShaderDeclaration implementation structure
69  */
70 struct IDirect3DVertexShaderDeclarationImpl {
71   /* The device */
72   /*IDirect3DDeviceImpl* device;*/
73
74   /** precomputed fvf if simple declaration */
75   DWORD   fvf[MAX_STREAMS];
76   DWORD   allFVF;
77
78   /** dx8 compatible Declaration fields */
79   DWORD*  pDeclaration8;
80   DWORD   declaration8Length;
81 };
82
83
84 /*****************************************************************************
85  * IDirect3DVertexShader implementation structure
86  */
87 struct IDirect3DVertexShaderImpl {
88   /* The device */
89   /*IDirect3DDeviceImpl* device;*/
90
91   DWORD* function;
92   UINT functionLength;
93   DWORD usage;
94   DWORD version;
95   /* run time datas */
96   VSHADERDATA* data;
97   VSHADERINPUTDATA input;
98   VSHADEROUTPUTDATA output;
99 };
100
101
102 /*****************************************************************************
103  * IDirect3DPixelShader implementation structure
104  */
105 struct IDirect3DPixelShaderImpl { 
106   /* The device */
107   /*IDirect3DDeviceImpl* device;*/
108
109   DWORD* function;
110   UINT functionLength;
111   DWORD version;
112   /* run time datas */
113   PSHADERDATA* data;
114   PSHADERINPUTDATA input;
115   PSHADEROUTPUTDATA output;
116 };
117
118 #endif /* Needs fixing during rework */
119 #endif