1/*
2    SDL - Simple DirectMedia Layer
3    Copyright (C) 1997-2012 Sam Lantinga
4
5    This library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    This library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public
16    License along with this library; if not, write to the Free Software
17    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
19    Sam Lantinga
20    slouken@libsdl.org
21*/
22#include "SDL_config.h"
23
24#ifndef _SDL_dx5video_h
25#define _SDL_dx5video_h
26
27#include "directx.h"
28
29/* Private display data */
30struct SDL_PrivateVideoData {
31    LPDIRECTDRAW2 ddraw2;
32    LPDIRECTDRAWSURFACE3 SDL_primary;
33    LPDIRECTDRAWCLIPPER SDL_clipper;
34    LPDIRECTDRAWPALETTE SDL_palette;
35    PALETTEENTRY SDL_colors[256];
36    int colorchange_expected;
37
38#define NUM_MODELISTS	4		/* 8, 16, 24, and 32 bits-per-pixel */
39    int SDL_nummodes[NUM_MODELISTS];
40    SDL_Rect **SDL_modelist[NUM_MODELISTS];
41    int SDL_modeindex[NUM_MODELISTS];
42};
43/* Old variable names */
44#define ddraw2			(this->hidden->ddraw2)
45#define SDL_primary		(this->hidden->SDL_primary)
46#define SDL_clipper		(this->hidden->SDL_clipper)
47#define SDL_palette		(this->hidden->SDL_palette)
48#define SDL_colors		(this->hidden->SDL_colors)
49#define colorchange_expected	(this->hidden->colorchange_expected)
50#define SDL_nummodes		(this->hidden->SDL_nummodes)
51#define SDL_modelist		(this->hidden->SDL_modelist)
52#define SDL_modeindex		(this->hidden->SDL_modeindex)
53
54/* DirectX function pointers for video and events */
55extern HRESULT (WINAPI *DDrawCreate)( GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter );
56extern HRESULT (WINAPI *DInputCreate)(HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUT *ppDI, LPUNKNOWN punkOuter);
57
58/* DirectDraw error reporting function */
59extern void SetDDerror(const char *function, int code);
60
61#endif /* _SDL_dx5video_h */
62