Fill in lots of unimplemented render states.
[wine] / dlls / ddraw / ddraw / hal.h
1 /*
2  * Copyright 2001 TransGaming Technologies, Inc.
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #ifndef WINE_DDRAW_DDRAW_HAL_H_INCLUDED
20 #define WINE_DDRAW_DDRAW_HAL_H_INCLUDED
21
22 #define HAL_DDRAW_PRIV(ddraw) \
23         ((HAL_DirectDrawImpl*)((ddraw)->private))
24 #define HAL_DDRAW_PRIV_VAR(name,ddraw) \
25         HAL_DirectDrawImpl* name = HAL_DDRAW_PRIV(ddraw)
26
27 typedef struct
28 {
29     DWORD next_vofs;
30 } HAL_DirectDrawImpl_Part;
31
32 typedef struct
33 {
34     User_DirectDrawImpl_Part user;
35     HAL_DirectDrawImpl_Part hal;
36 } HAL_DirectDrawImpl;
37
38 void HAL_DirectDraw_final_release(IDirectDrawImpl* This);
39 HRESULT HAL_DirectDraw_create_primary(IDirectDrawImpl* This,
40                                       const DDSURFACEDESC2* pDDSD,
41                                       LPDIRECTDRAWSURFACE7* ppSurf,
42                                       LPUNKNOWN pOuter);
43 HRESULT HAL_DirectDraw_create_backbuffer(IDirectDrawImpl* This,
44                                          const DDSURFACEDESC2* pDDSD,
45                                          LPDIRECTDRAWSURFACE7* ppSurf,
46                                          LPUNKNOWN pOuter,
47                                          IDirectDrawSurfaceImpl* primary);
48 HRESULT HAL_DirectDraw_create_texture(IDirectDrawImpl* This,
49                                       const DDSURFACEDESC2* pDDSD,
50                                       LPDIRECTDRAWSURFACE7* ppSurf,
51                                       LPUNKNOWN pOuter,
52                                       DWORD dwMipMapLevel);
53
54 HRESULT HAL_DirectDraw_Construct(IDirectDrawImpl *This, BOOL ex);
55 HRESULT HAL_DirectDraw_Create(const GUID* pGUID, LPDIRECTDRAW7* pIface,
56                                    IUnknown* pUnkOuter, BOOL ex);
57
58
59 HRESULT WINAPI
60 HAL_DirectDraw_GetDeviceIdentifier(LPDIRECTDRAW7 iface,
61                                         LPDDDEVICEIDENTIFIER2 pDDDI,
62                                         DWORD dwFlags);
63 HRESULT WINAPI
64 HAL_DirectDraw_SetDisplayMode(LPDIRECTDRAW7 iface, DWORD dwWidth,
65                                    DWORD dwHeight, DWORD dwBPP,
66                                    DWORD dwRefreshRate, DWORD dwFlags);
67 HRESULT WINAPI
68 HAL_DirectDraw_RestoreDisplayMode(LPDIRECTDRAW7 iface);
69
70 #endif