Full some additional Structs
[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 DDHAL_DDEXEBUFCALLBACKS D3dBufferCallbacks;
26
27 } DRIVERCALLBACKS;
28
29 typedef struct
30 {
31 IDirectDraw7Vtbl* lpVtbl;
32 DRIVERCALLBACKS DriverCallbacks;
33 DWORD ref;
34
35 DDHALINFO HalInfo;
36 D3DHAL_GLOBALDRIVERDATA D3dDriverData;
37 LPDDSURFACEDESC pD3dTextureFormats;
38
39 HWND window;
40 DWORD cooperative_level;
41 HDC hdc;
42 int Height, Width, Bpp;
43
44 GUID* lpGUID;
45 DDRAWI_DIRECTDRAW_GBL DirectDrawGlobal;
46
47 } IDirectDrawImpl;
48
49
50 /******** Surface Object ********/
51
52 typedef struct
53 {
54 IDirectDrawSurface7Vtbl* lpVtbl;
55 DWORD ref;
56
57 IDirectDrawImpl* owner;
58
59 } IDirectDrawSurfaceImpl;
60
61
62 /******** Clipper Object ********/
63
64 typedef struct
65 {
66 IDirectDrawClipperVtbl* lpVtbl;
67 DWORD ref;
68
69 IDirectDrawImpl* owner;
70
71 } IDirectDrawClipperImpl;
72
73
74 /******** Palette Object ********/
75
76 typedef struct
77 {
78 IDirectDrawPaletteVtbl* lpVtbl;
79 DWORD ref;
80
81 IDirectDrawImpl* owner;
82
83 } IDirect3DDeviceImpl;
84
85
86 /*********** VTables ************/
87
88 extern IDirectDraw7Vtbl DirectDraw_VTable;
89 extern IDirectDrawSurface7Vtbl DDrawSurface_VTable;
90
91
92 /********* Prototypes **********/
93
94 HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 iface);
95 HRESULT Hal_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface);
96 VOID Hal_DirectDraw_Release (LPDIRECTDRAW7 iface);
97
98 HRESULT Hel_DirectDraw_Initialize (LPDIRECTDRAW7 iface);
99 HRESULT Hel_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface);
100 VOID Hel_DirectDraw_Release (LPDIRECTDRAW7 iface);
101
102 #endif /* __DDRAW_PRIVATE */