1 /* Copyright 2000-2001 TransGaming Technologies Inc. */
3 #ifndef DDRAW_DSURFACE_HAL_H_INCLUDED
4 #define DDRAW_DSURFACE_HAL_H_INCLUDED
6 #define HAL_PRIV(surf) ((HAL_DirectDrawSurfaceImpl*)((surf)->private))
8 #define HAL_PRIV_VAR(name,surf) \
9 HAL_DirectDrawSurfaceImpl* name = HAL_PRIV(surf)
11 struct HAL_DirectDrawSurfaceImpl_Part
15 DWORD fb_pitch, fb_vofs;
20 struct DIB_DirectDrawSurfaceImpl_Part dib;
21 struct User_DirectDrawSurfaceImpl_Part user;
22 struct HAL_DirectDrawSurfaceImpl_Part hal;
23 } HAL_DirectDrawSurfaceImpl;
26 HAL_DirectDrawSurface_Construct(IDirectDrawSurfaceImpl* This,
28 const DDSURFACEDESC2* pDDSD);
31 HAL_DirectDrawSurface_Create(IDirectDrawImpl *pDD,
32 const DDSURFACEDESC2 *pDDSD,
33 LPDIRECTDRAWSURFACE7 *ppSurf,
36 void HAL_DirectDrawSurface_final_release(IDirectDrawSurfaceImpl* This);
37 HRESULT HAL_DirectDrawSurface_late_allocate(IDirectDrawSurfaceImpl* This);
39 void HAL_DirectDrawSurface_set_palette(IDirectDrawSurfaceImpl* This,
40 IDirectDrawPaletteImpl* pal);
41 void HAL_DirectDrawSurface_update_palette(IDirectDrawSurfaceImpl* This,
42 IDirectDrawPaletteImpl* pal,
43 DWORD dwStart, DWORD dwCount,
44 LPPALETTEENTRY palent);
45 HRESULT HAL_DirectDrawSurface_duplicate_surface(IDirectDrawSurfaceImpl* This,
46 LPDIRECTDRAWSURFACE7* ppDup);
47 void HAL_DirectDrawSurface_lock_update(IDirectDrawSurfaceImpl* This,
49 void HAL_DirectDrawSurface_unlock_update(IDirectDrawSurfaceImpl* This,
51 BOOL HAL_DirectDrawSurface_flip_data(IDirectDrawSurfaceImpl* front,
52 IDirectDrawSurfaceImpl* back,
54 void HAL_DirectDrawSurface_flip_update(IDirectDrawSurfaceImpl* This,
56 HWND HAL_DirectDrawSurface_get_display_window(IDirectDrawSurfaceImpl* This);