1 /* Copyright 2000 TransGaming Technologies Inc. */
3 #ifndef DDRAW_DSURFACE_USER_H_INCLUDED
4 #define DDRAW_DSURFACE_USER_H_INCLUDED
6 #define USER_PRIV(surf) ((User_DirectDrawSurfaceImpl*)((surf)->private))
8 #define USER_PRIV_VAR(name,surf) \
9 User_DirectDrawSurfaceImpl* name = USER_PRIV(surf)
11 struct User_DirectDrawSurfaceImpl_Part
15 HANDLE update_thread, update_event;
20 struct DIB_DirectDrawSurfaceImpl_Part dib;
21 struct User_DirectDrawSurfaceImpl_Part user;
22 } User_DirectDrawSurfaceImpl;
25 User_DirectDrawSurface_Construct(IDirectDrawSurfaceImpl* This,
27 const DDSURFACEDESC2* pDDSD);
30 User_DirectDrawSurface_Create(IDirectDrawImpl *pDD,
31 const DDSURFACEDESC2 *pDDSD,
32 LPDIRECTDRAWSURFACE7 *ppSurf,
35 void User_DirectDrawSurface_final_release(IDirectDrawSurfaceImpl* This);
37 void User_DirectDrawSurface_lock_update(IDirectDrawSurfaceImpl* This,
39 void User_DirectDrawSurface_unlock_update(IDirectDrawSurfaceImpl* This,
41 void User_DirectDrawSurface_set_palette(IDirectDrawSurfaceImpl* This,
42 IDirectDrawPaletteImpl* pal);
43 void User_DirectDrawSurface_update_palette(IDirectDrawSurfaceImpl* This,
44 IDirectDrawPaletteImpl* pal,
45 DWORD dwStart, DWORD dwCount,
46 LPPALETTEENTRY palent);
47 HRESULT User_DirectDrawSurface_duplicate_surface(IDirectDrawSurfaceImpl* This,
48 LPDIRECTDRAWSURFACE7* ppDup);
49 BOOL User_DirectDrawSurface_flip_data(IDirectDrawSurfaceImpl* front,
50 IDirectDrawSurfaceImpl* back,
52 void User_DirectDrawSurface_flip_update(IDirectDrawSurfaceImpl* This,
54 HWND User_DirectDrawSurface_get_display_window(IDirectDrawSurfaceImpl* This);
56 HRESULT User_DirectDrawSurface_get_dc(IDirectDrawSurfaceImpl* This, HDC* phDC);
57 HRESULT User_DirectDrawSurface_release_dc(IDirectDrawSurfaceImpl* This,