typedef struct
{
+ /* Setup the Vtbl COM table */
IDirectDraw7Vtbl* lpVtbl;
IDirectDraw4Vtbl* lpVtbl_v4;
IDirectDraw2Vtbl* lpVtbl_v2;
IDirectDrawVtbl* lpVtbl_v1;
+ /* The main struct that contain all info from the HAL and HEL */
DDRAWI_DIRECTDRAW_GBL DirectDrawGlobal;
+
+ /* ExclusiveOwner */
+ DDRAWI_DIRECTDRAW_LCL ExclusiveOwner;
+
+ /* MISC info that will be remove in futuer */
DDHAL_DDMISCELLANEOUSCALLBACKS Misc2Callback;
DDHALINFO HalInfo;
-
- HWND window;
- DWORD cooperative_level;
- HDC hdc;
+
+ DWORD cooperative_level;
int Height, Width, Bpp;
- GUID* lpGUID;
+ BOOL InitializeDraw;
+
} IDirectDrawImpl;
{
IDirectDrawSurface7Vtbl* lpVtbl;
IDirectDrawSurface3Vtbl* lpVtbl_v3;
-
- LONG ref;
-
+
IDirectDrawImpl* owner;
+ DDRAWI_DDRAWSURFACE_GBL Global;
+ DDRAWI_DDRAWSURFACE_MORE More;
+ DDRAWI_DDRAWSURFACE_LCL Local;
+ DDRAWI_DDRAWSURFACE_LCL *pLocal[2];
+ DDSURFACEDESC ddsd;
+
} IDirectDrawSurfaceImpl;
/******** Clipper Object ********/
HRESULT Hal_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 );
HRESULT Hal_DirectDraw_SetDisplayMode (LPDIRECTDRAW7, DWORD, DWORD, DWORD, DWORD, DWORD );
HRESULT Hal_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7, LPRECT, LPDIRECTDRAWSURFACE7, LPRECT, DWORD, LPDDBLTFX );
+HRESULT Hal_DDrawSurface_Initialize (LPDIRECTDRAWSURFACE7 , LPDIRECTDRAW , LPDDSURFACEDESC2 );
HRESULT Hel_DirectDraw_Initialize (LPDIRECTDRAW7 );
HRESULT Hel_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 );
HRESULT Hel_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 , DWORD , DWORD ,DWORD , DWORD , DWORD );
HRESULT Hel_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7, LPRECT, LPDIRECTDRAWSURFACE7, LPRECT, DWORD, LPDDBLTFX );
+HRESULT Hel_DDrawSurface_Initialize (LPDIRECTDRAWSURFACE7 , LPDIRECTDRAW , LPDDSURFACEDESC2 );
/*********** Macros ***********/