split up CreateSurface to hal and hel interface
[reactos.git] / reactos / lib / ddraw / rosdraw.h
index b0823c6..685a0f6 100644 (file)
@@ -20,6 +20,7 @@ typedef struct
        IDirectDrawVtbl*  lpVtbl_v1;
 
        DDRAWI_DIRECTDRAW_GBL DirectDrawGlobal;
+       DDHAL_DDMISCELLANEOUSCALLBACKS Misc2Callback;
        DDHALINFO HalInfo;      
 
     HWND window;
@@ -37,11 +38,15 @@ typedef struct
 {
        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 ********/
@@ -83,16 +88,40 @@ extern IDirectDrawGammaControlVtbl  DirectDrawGammaControl_Vtable;
 
 /********* Prototypes **********/
 
-HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 iface);
-HRESULT Hal_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface);
-VOID Hal_DirectDraw_Release (LPDIRECTDRAW7 iface);
-
-HRESULT Hel_DirectDraw_Initialize (LPDIRECTDRAW7 iface);
-HRESULT Hel_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface);
-VOID Hel_DirectDraw_Release (LPDIRECTDRAW7 iface);
+HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 );
+HRESULT Hal_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 );
+VOID Hal_DirectDraw_Release (LPDIRECTDRAW7 );
+HRESULT Hal_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7, LPDDSCAPS2, LPDWORD, LPDWORD );       
+HRESULT Hal_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7, DWORD, HANDLE ); 
+HRESULT Hal_DirectDraw_GetScanLine(LPDIRECTDRAW7 , LPDWORD );
+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_SetCooperativeLevel (LPDIRECTDRAW7 );
+VOID Hel_DirectDraw_Release (LPDIRECTDRAW7 );
+HRESULT Hel_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 , LPDDSCAPS2 ddsaps, LPDWORD , LPDWORD );      
+HRESULT Hel_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7, DWORD, HANDLE ); 
+HRESULT Hel_DirectDraw_GetScanLine(LPDIRECTDRAW7 , LPDWORD );
+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 ***********/
 
-#define DX_STUB return DDERR_UNSUPPORTED; 
+#define DX_STUB \
+       static BOOL firstcall = TRUE; \
+       if (firstcall) \
+       { \
+               char buffer[1024]; \
+               sprintf ( buffer, "Function %s is not implemented yet (%s:%d)\n", __FUNCTION__,__FILE__,__LINE__ ); \
+               OutputDebugStringA(buffer); \
+               firstcall = FALSE; \
+       } \
+       return DDERR_UNSUPPORTED; 
 
 #endif /* __DDRAW_PRIVATE */