Changeset - r4256:15dccd2d3b80
[Not reviewed]
master
0 4 1
Darkvater - 18 years ago 2006-08-13 08:18:11
darkvater@openttd.org
(svn r5872) - Feature: Add an icon to the SDL openttd executable.
5 files changed with 36 insertions and 1 deletions:
0 comments (0 inline, 0 general)
Makefile
Show inline comments
 
@@ -616,6 +616,10 @@ endif
 
ifdef USE_HOMEDIR
 
CDEFS += -DUSE_HOMEDIR
 
endif
 

	
 
ifdef ICON_DIR
 
CDEFS += -DICON_DIR=\"$(ICON_DIR_PREFIXED)/\"
 
endif
 
endif
 

	
 
##############################################################################
media/openttd.32.bmp
Show inline comments
 
new file 100644
 
binary diff not shown
Show images
sdl.c
Show inline comments
 
@@ -54,6 +54,11 @@ static const char sdl_files[] =
 
	M("SDL_VideoDriverName")
 
	M("SDL_ListModes")
 
	M("SDL_GetKeyState")
 
	M("SDL_LoadBMP_RW")
 
	M("SDL_RWFromFile")
 
	M("SDL_SetColorKey")
 
	M("SDL_WM_SetIcon")
 
	M("SDL_MapRGB")
 
	M("")
 
;
 
#undef M
sdl.h
Show inline comments
 
@@ -41,6 +41,11 @@ void SdlClose(uint32 x);
 
		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;
video/sdl_v.c
Show inline comments
 
@@ -161,15 +161,36 @@ static int GetAvailableVideoMode(int *w,
 

	
 
extern const char _openttd_revision[];
 

	
 
#ifndef ICON_DIR
 
#define ICON_DIR "media"
 
#endif
 

	
 
#ifdef WIN32
 
/* Let's redefine the LoadBMP macro with because we are dynamically
 
 * loading SDL and need to 'SDL_CALL' all functions */
 
#undef SDL_LoadBMP
 
#define SDL_LoadBMP(file)	SDL_LoadBMP_RW(SDL_CALL SDL_RWFromFile(file, "rb"), 1)
 
#endif
 

	
 
static bool CreateMainSurface(int w, int h)
 
{
 
	SDL_Surface *newscreen;
 
	SDL_Surface *newscreen, *icon;
 
	char caption[50];
 

	
 
	GetAvailableVideoMode(&w, &h);
 

	
 
	DEBUG(driver, 1) ("sdl: using mode %dx%d", w, h);
 

	
 
	/* Give the application an icon */
 
	icon = SDL_CALL SDL_LoadBMP(ICON_DIR PATHSEP "openttd.32.bmp");
 
	if (icon != NULL) {
 
		/* Get the colourkey, which will be magenta */
 
		uint32 rgbmap = SDL_CALL SDL_MapRGB(icon->format, 255, 0, 255);
 
		SDL_CALL SDL_SetColorKey(icon, SDL_SRCCOLORKEY, rgbmap);
 
		SDL_CALL SDL_WM_SetIcon(icon, NULL);
 
		SDL_CALL SDL_FreeSurface(icon);
 
	}
 

	
 
	// DO NOT CHANGE TO HWSURFACE, IT DOES NOT WORK
 
	newscreen = SDL_CALL SDL_SetVideoMode(w, h, 8, SDL_SWSURFACE | SDL_HWPALETTE | (_fullscreen ? SDL_FULLSCREEN : SDL_RESIZABLE));
 
	if (newscreen == NULL)
0 comments (0 inline, 0 general)