reshuffling of dlls
[reactos.git] / reactos / dll / directx / 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 #include <ddrawi.h>
10 #include <d3dhal.h>
11 #include <ddrawgdi.h>
12
13 /******** Main Object ********/
14
15 typedef struct
16 {
17 /* Setup the Vtbl COM table */
18 IDirectDraw7Vtbl* lpVtbl;
19 IDirectDraw4Vtbl* lpVtbl_v4;
20 IDirectDraw2Vtbl* lpVtbl_v2;
21 IDirectDrawVtbl* lpVtbl_v1;
22
23 /* The main struct that contain all info from the HAL and HEL */
24 DDRAWI_DIRECTDRAW_GBL DirectDrawGlobal;
25
26 /* ExclusiveOwner */
27 DDRAWI_DIRECTDRAW_LCL ExclusiveOwner;
28
29 /* MISC info that will be remove in futuer */
30 DDHAL_DDMISCELLANEOUSCALLBACKS Misc2Callback;
31 DDHALINFO HalInfo;
32
33 DWORD cooperative_level;
34 int Height, Width, Bpp;
35
36 BOOL InitializeDraw;
37
38
39 } IDirectDrawImpl;
40
41 /******** Surface Object ********/
42
43 typedef struct
44 {
45 IDirectDrawSurface7Vtbl* lpVtbl;
46 IDirectDrawSurface3Vtbl* lpVtbl_v3;
47
48 IDirectDrawImpl* owner;
49
50 DDRAWI_DDRAWSURFACE_GBL Global;
51 DDRAWI_DDRAWSURFACE_MORE More;
52 DDRAWI_DDRAWSURFACE_LCL Local;
53 DDRAWI_DDRAWSURFACE_LCL *pLocal[2];
54 DDSURFACEDESC ddsd;
55
56 } IDirectDrawSurfaceImpl;
57
58 /******** Clipper Object ********/
59
60 typedef struct
61 {
62 IDirectDrawClipperVtbl* lpVtbl;
63 LONG ref;
64
65 IDirectDrawImpl* owner;
66
67 } IDirectDrawClipperImpl;
68
69 /******** Palette Object ********/
70
71 typedef struct
72 {
73 IDirectDrawPaletteVtbl* lpVtbl;
74 LONG ref;
75
76 IDirectDrawImpl* owner;
77
78 } IDirectDrawPaletteImpl;
79
80 /*********** VTables ************/
81
82 extern IDirectDraw7Vtbl DirectDraw7_Vtable;
83 extern IDirectDrawVtbl DDRAW_IDirectDraw_VTable;
84 extern IDirectDraw2Vtbl DDRAW_IDirectDraw2_VTable;
85 extern IDirectDraw4Vtbl DDRAW_IDirectDraw4_VTable;
86
87 extern IDirectDrawSurface7Vtbl DirectDrawSurface7_Vtable;
88 extern IDirectDrawSurface3Vtbl DDRAW_IDDS3_Thunk_VTable;
89
90 extern IDirectDrawPaletteVtbl DirectDrawPalette_Vtable;
91 extern IDirectDrawClipperVtbl DirectDrawClipper_Vtable;
92 extern IDirectDrawColorControlVtbl DirectDrawColorControl_Vtable;
93 extern IDirectDrawGammaControlVtbl DirectDrawGammaControl_Vtable;
94
95 /********* Prototypes **********/
96
97 HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 );
98 HRESULT Hal_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 );
99 VOID Hal_DirectDraw_Release (LPDIRECTDRAW7 );
100 HRESULT Hal_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7, LPDDSCAPS2, LPDWORD, LPDWORD );
101 HRESULT Hal_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7, DWORD, HANDLE );
102 HRESULT Hal_DirectDraw_GetScanLine(LPDIRECTDRAW7 , LPDWORD );
103 HRESULT Hal_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 );
104 HRESULT Hal_DirectDraw_SetDisplayMode (LPDIRECTDRAW7, DWORD, DWORD, DWORD, DWORD, DWORD );
105 HRESULT Hal_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7, LPRECT, LPDIRECTDRAWSURFACE7, LPRECT, DWORD, LPDDBLTFX );
106 HRESULT Hal_DDrawSurface_Initialize (LPDIRECTDRAWSURFACE7 , LPDIRECTDRAW , LPDDSURFACEDESC2 );
107
108
109 HRESULT Hel_DirectDraw_Initialize (LPDIRECTDRAW7 );
110 HRESULT Hel_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 );
111 VOID Hel_DirectDraw_Release (LPDIRECTDRAW7 );
112 HRESULT Hel_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 , LPDDSCAPS2 ddsaps, LPDWORD , LPDWORD );
113 HRESULT Hel_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7, DWORD, HANDLE );
114 HRESULT Hel_DirectDraw_GetScanLine(LPDIRECTDRAW7 , LPDWORD );
115 HRESULT Hel_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 );
116 HRESULT Hel_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 , DWORD , DWORD ,DWORD , DWORD , DWORD );
117 HRESULT Hel_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7, LPRECT, LPDIRECTDRAWSURFACE7, LPRECT, DWORD, LPDDBLTFX );
118 HRESULT Hel_DDrawSurface_Initialize (LPDIRECTDRAWSURFACE7 , LPDIRECTDRAW , LPDDSURFACEDESC2 );
119
120 /*********** Macros ***********/
121
122 #define DX_STUB \
123 static BOOL firstcall = TRUE; \
124 if (firstcall) \
125 { \
126 char buffer[1024]; \
127 sprintf ( buffer, "Function %s is not implemented yet (%s:%d)\n", __FUNCTION__,__FILE__,__LINE__ ); \
128 OutputDebugStringA(buffer); \
129 firstcall = FALSE; \
130 } \
131 return DDERR_UNSUPPORTED;
132
133 #endif /* __DDRAW_PRIVATE */