1 #ifndef __DDRAW_PRIVATE
2 #define __DDRAW_PRIVATE
4 /********* Includes *********/
13 /******** Main Object ********/
17 /* Setup the Vtbl COM table */
18 IDirectDraw7Vtbl
* lpVtbl
;
19 IDirectDraw4Vtbl
* lpVtbl_v4
;
20 IDirectDraw2Vtbl
* lpVtbl_v2
;
21 IDirectDrawVtbl
* lpVtbl_v1
;
23 /* The main struct that contain all info from the HAL and HEL */
24 DDRAWI_DIRECTDRAW_GBL DirectDrawGlobal
;
27 DDRAWI_DIRECTDRAW_LCL ExclusiveOwner
;
29 /* MISC info that will be remove in futuer */
30 DDHAL_DDMISCELLANEOUSCALLBACKS Misc2Callback
;
33 DWORD cooperative_level
;
34 int Height
, Width
, Bpp
;
41 /******** Surface Object ********/
45 IDirectDrawSurface7Vtbl
* lpVtbl
;
46 IDirectDrawSurface3Vtbl
* lpVtbl_v3
;
48 IDirectDrawImpl
* owner
;
50 DDRAWI_DDRAWSURFACE_GBL Global
;
51 DDRAWI_DDRAWSURFACE_MORE More
;
52 DDRAWI_DDRAWSURFACE_LCL Local
;
53 DDRAWI_DDRAWSURFACE_LCL
*pLocal
[2];
56 } IDirectDrawSurfaceImpl
;
58 /******** Clipper Object ********/
62 IDirectDrawClipperVtbl
* lpVtbl
;
65 IDirectDrawImpl
* owner
;
67 } IDirectDrawClipperImpl
;
69 /******** Palette Object ********/
73 IDirectDrawPaletteVtbl
* lpVtbl
;
76 IDirectDrawImpl
* owner
;
78 } IDirectDrawPaletteImpl
;
80 /*********** VTables ************/
82 extern IDirectDraw7Vtbl DirectDraw7_Vtable
;
83 extern IDirectDrawVtbl DDRAW_IDirectDraw_VTable
;
84 extern IDirectDraw2Vtbl DDRAW_IDirectDraw2_VTable
;
85 extern IDirectDraw4Vtbl DDRAW_IDirectDraw4_VTable
;
87 extern IDirectDrawSurface7Vtbl DirectDrawSurface7_Vtable
;
88 extern IDirectDrawSurface3Vtbl DDRAW_IDDS3_Thunk_VTable
;
90 extern IDirectDrawPaletteVtbl DirectDrawPalette_Vtable
;
91 extern IDirectDrawClipperVtbl DirectDrawClipper_Vtable
;
92 extern IDirectDrawColorControlVtbl DirectDrawColorControl_Vtable
;
93 extern IDirectDrawGammaControlVtbl DirectDrawGammaControl_Vtable
;
95 /********* Prototypes **********/
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
);
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
);
120 /*********** Macros ***********/
123 static BOOL firstcall = TRUE; \
127 sprintf ( buffer, "Function %s is not implemented yet (%s:%d)\n", __FUNCTION__,__FILE__,__LINE__ ); \
128 OutputDebugStringA(buffer); \
131 return DDERR_UNSUPPORTED;
133 #endif /* __DDRAW_PRIVATE */