mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-23 10:09:43 +01:00
Factor out icon loading to Screen::LoadIcon()
This is so it can be called multiple times without having to duplicate code.
This commit is contained in:
parent
c371d30509
commit
6d8b8d08b9
2 changed files with 28 additions and 21 deletions
|
@ -62,27 +62,7 @@ void Screen::init(
|
||||||
);
|
);
|
||||||
SDL_SetWindowTitle(m_window, "VVVVVV");
|
SDL_SetWindowTitle(m_window, "VVVVVV");
|
||||||
|
|
||||||
unsigned char *fileIn = NULL;
|
LoadIcon();
|
||||||
size_t length = 0;
|
|
||||||
unsigned char *data;
|
|
||||||
unsigned int width, height;
|
|
||||||
FILESYSTEM_loadFileToMemory("VVVVVV.png", &fileIn, &length);
|
|
||||||
lodepng_decode24(&data, &width, &height, fileIn, length);
|
|
||||||
FILESYSTEM_freeMemory(&fileIn);
|
|
||||||
SDL_Surface *icon = SDL_CreateRGBSurfaceFrom(
|
|
||||||
data,
|
|
||||||
width,
|
|
||||||
height,
|
|
||||||
24,
|
|
||||||
width * 3,
|
|
||||||
0x000000FF,
|
|
||||||
0x0000FF00,
|
|
||||||
0x00FF0000,
|
|
||||||
0x00000000
|
|
||||||
);
|
|
||||||
SDL_SetWindowIcon(m_window, icon);
|
|
||||||
SDL_FreeSurface(icon);
|
|
||||||
free(data);
|
|
||||||
|
|
||||||
// FIXME: This surface should be the actual backbuffer! -flibit
|
// FIXME: This surface should be the actual backbuffer! -flibit
|
||||||
m_screen = SDL_CreateRGBSurface(
|
m_screen = SDL_CreateRGBSurface(
|
||||||
|
@ -109,6 +89,31 @@ void Screen::init(
|
||||||
ResizeScreen(windowWidth, windowHeight);
|
ResizeScreen(windowWidth, windowHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Screen::LoadIcon()
|
||||||
|
{
|
||||||
|
unsigned char *fileIn = NULL;
|
||||||
|
size_t length = 0;
|
||||||
|
unsigned char *data;
|
||||||
|
unsigned int width, height;
|
||||||
|
FILESYSTEM_loadFileToMemory("VVVVVV.png", &fileIn, &length);
|
||||||
|
lodepng_decode24(&data, &width, &height, fileIn, length);
|
||||||
|
FILESYSTEM_freeMemory(&fileIn);
|
||||||
|
SDL_Surface *icon = SDL_CreateRGBSurfaceFrom(
|
||||||
|
data,
|
||||||
|
width,
|
||||||
|
height,
|
||||||
|
24,
|
||||||
|
width * 3,
|
||||||
|
0x000000FF,
|
||||||
|
0x0000FF00,
|
||||||
|
0x00FF0000,
|
||||||
|
0x00000000
|
||||||
|
);
|
||||||
|
SDL_SetWindowIcon(m_window, icon);
|
||||||
|
SDL_FreeSurface(icon);
|
||||||
|
free(data);
|
||||||
|
}
|
||||||
|
|
||||||
void Screen::ResizeScreen(int x, int y)
|
void Screen::ResizeScreen(int x, int y)
|
||||||
{
|
{
|
||||||
static int resX = 320;
|
static int resX = 320;
|
||||||
|
|
|
@ -16,6 +16,8 @@ public:
|
||||||
bool badSignal
|
bool badSignal
|
||||||
);
|
);
|
||||||
|
|
||||||
|
void LoadIcon();
|
||||||
|
|
||||||
void ResizeScreen(int x, int y);
|
void ResizeScreen(int x, int y);
|
||||||
void ResizeToNearestMultiple();
|
void ResizeToNearestMultiple();
|
||||||
void GetWindowSize(int* x, int* y);
|
void GetWindowSize(int* x, int* y);
|
||||||
|
|
Loading…
Reference in a new issue