Files @ r5475:3f5cd13d1b63
Branch filter:

Location: cpp/openttd-patchpack/source/src/sdl.h

rubidium
(svn r7759) -Merge: makefile rewrite. This merge features:
- A proper ./configure, so everything needs to be configured only once, not for every make.
- Usage of makedepend when available. This greatly reduces the time needed for generating the dependencies.
- A generator for all project files. There is a single file with sources, which is used to generate Makefiles and the project files for MSVC.
- Proper support for OSX universal binaries.
- Object files for non-MSVC compiles are also placed in separate directories, making is faster to switch between debug and release compiles and it does not touch the directory with the source files.
- Functionality to make a bundle of all needed files for for example a nightly or distribution of a binary with all needed GRFs and language files.

Note: as this merge moves almost all files, it is recommended to make a backup of your working copy before updating your working copy.
/* $Id$ */

#ifndef SDL_H
#define SDL_H

const char* SdlOpen(uint32 x);
void SdlClose(uint32 x);

#ifdef WIN32
	#define DYNAMICALLY_LOADED_SDL
#endif

#ifdef DYNAMICALLY_LOADED_SDL
	#include <SDL.h>

	typedef struct SDLProcs {
		int (SDLCALL *SDL_Init)(Uint32);
		int (SDLCALL *SDL_InitSubSystem)(Uint32);
		char *(SDLCALL *SDL_GetError)(void);
		void (SDLCALL *SDL_QuitSubSystem)(Uint32);
		void (SDLCALL *SDL_UpdateRect)(SDL_Surface *, Sint32, Sint32, Uint32, Uint32);
		void (SDLCALL *SDL_UpdateRects)(SDL_Surface *, int, SDL_Rect *);
		int (SDLCALL *SDL_SetColors)(SDL_Surface *, SDL_Color *, int, int);
		void (SDLCALL *SDL_WM_SetCaption)(const char *, const char *);
		int (SDLCALL *SDL_ShowCursor)(int);
		void (SDLCALL *SDL_FreeSurface)(SDL_Surface *);
		int (SDLCALL *SDL_PollEvent)(SDL_Event *);
		void (SDLCALL *SDL_WarpMouse)(Uint16, Uint16);
		uint32 (SDLCALL *SDL_GetTicks)(void);
		int (SDLCALL *SDL_OpenAudio)(SDL_AudioSpec *, SDL_AudioSpec*);
		void (SDLCALL *SDL_PauseAudio)(int);
		void (SDLCALL *SDL_CloseAudio)(void);
		int (SDLCALL *SDL_LockSurface)(SDL_Surface*);
		void (SDLCALL *SDL_UnlockSurface)(SDL_Surface*);
		SDLMod (SDLCALL *SDL_GetModState)(void);
		void (SDLCALL *SDL_Delay)(Uint32);
		void (SDLCALL *SDL_Quit)(void);
		SDL_Surface *(SDLCALL *SDL_SetVideoMode)(int, int, int, Uint32);
		int (SDLCALL *SDL_EnableKeyRepeat)(int, int);
		void (SDLCALL *SDL_EnableUNICODE)(int);
		void (SDLCALL *SDL_VideoDriverName)(char *, int);
		SDL_Rect **(SDLCALL *SDL_ListModes)(void *, int);
		Uint8 *(SDLCALL *SDL_GetKeyState)(int *);
		SDL_Surface *(SDLCALL *SDL_LoadBMP_RW)(SDL_RWops *, int);
		SDL_RWops *(SDLCALL *SDL_RWFromFile)(const char *, const char *);
		int (SDLCALL *SDL_SetColorKey)(SDL_Surface *, Uint32, Uint32);
		void (SDLCALL *SDL_WM_SetIcon)(SDL_Surface *, Uint8 *);
		Uint32 (SDLCALL *SDL_MapRGB)(SDL_PixelFormat *, Uint8, Uint8, Uint8);
	} SDLProcs;

	extern SDLProcs sdl_proc;

	#define SDL_CALL sdl_proc.
#else
	#define SDL_CALL
#endif

#endif /* SDL_H */