The beginning of a ddraw implementation. Does not work yet for unknown reason.
[reactos.git] / reactos / lib / ddraw / rosdraw.h
1 #ifndef __DDRAW_PRIVATE
2 #define __DDRAW_PRIVATE
3
4 /********* Includes *********/
5
6 #include <windows.h>
7 #include <stdio.h>
8 #include <ddraw.h>
9
10 #include <ddk/ddrawint.h>
11 #include <ddk/d3dnthal.h>
12 #include <ddk/d3dhal.h>
13 #include <ddrawgdi.h>
14 #include <d3d8thk.h>
15
16
17 /******** Main Object ********/
18
19 typedef struct
20 {
21 DDHAL_DDCALLBACKS DdMain;
22 DDHAL_DDSURFACECALLBACKS DdSurface;
23 DDHAL_DDPALETTECALLBACKS DdPalette;
24 D3DHAL_CALLBACKS D3dMain;
25 D3DHAL_GLOBALDRIVERDATA D3dDriverData;
26 DDHAL_DDEXEBUFCALLBACKS D3dBufferCallbacks;
27
28 } DRIVERCALLBACKS;
29
30 typedef struct
31 {
32 IDirectDraw7Vtbl* lpVtbl;
33 DRIVERCALLBACKS DriverCallbacks;
34 DWORD ref;
35
36 DDHALINFO HalInfo;
37
38 HWND window;
39 DWORD cooperative_level;
40 HDC hdc;
41 int Height, Width, Bpp;
42
43 GUID* lpGUID;
44 DDRAWI_DIRECTDRAW_GBL DirectDrawGlobal;
45
46 } IDirectDrawImpl;
47
48
49 /******** Surface Object ********/
50
51 typedef struct
52 {
53 IDirectDrawSurface7Vtbl* lpVtbl;
54 DWORD ref;
55
56 IDirectDrawImpl* owner;
57
58 } IDirectDrawSurfaceImpl;
59
60
61 /******** Clipper Object ********/
62
63 typedef struct
64 {
65 IDirectDrawClipperVtbl* lpVtbl;
66 DWORD ref;
67
68 IDirectDrawImpl* owner;
69
70 } IDirectDrawClipperImpl;
71
72
73 /******** Palette Object ********/
74
75 typedef struct
76 {
77 IDirectDrawPaletteVtbl* lpVtbl;
78 DWORD ref;
79
80 IDirectDrawImpl* owner;
81
82 } IDirect3DDeviceImpl;
83
84
85 /*********** VTables ************/
86
87 extern IDirectDraw7Vtbl DirectDraw_VTable;
88 extern IDirectDrawSurface7Vtbl DDrawSurface_VTable;
89
90
91 /********* Prototypes **********/
92
93 HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 iface);
94 HRESULT Hal_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface);
95 VOID Hal_DirectDraw_Release (LPDIRECTDRAW7 iface);
96
97 HRESULT Hel_DirectDraw_Initialize (LPDIRECTDRAW7 iface);
98 HRESULT Hel_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface);
99 VOID Hel_DirectDraw_Release (LPDIRECTDRAW7 iface);
100
101 #endif /* __DDRAW_PRIVATE */