diff --git a/desktop_version/src/Screen.cpp b/desktop_version/src/Screen.cpp index e7330016..ea86a1a6 100644 --- a/desktop_version/src/Screen.cpp +++ b/desktop_version/src/Screen.cpp @@ -62,27 +62,7 @@ void Screen::init( ); SDL_SetWindowTitle(m_window, "VVVVVV"); - 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); + LoadIcon(); // FIXME: This surface should be the actual backbuffer! -flibit m_screen = SDL_CreateRGBSurface( @@ -109,6 +89,31 @@ void Screen::init( 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) { static int resX = 320; diff --git a/desktop_version/src/Screen.h b/desktop_version/src/Screen.h index 9d768b15..e4546724 100644 --- a/desktop_version/src/Screen.h +++ b/desktop_version/src/Screen.h @@ -16,6 +16,8 @@ public: bool badSignal ); + void LoadIcon(); + void ResizeScreen(int x, int y); void ResizeToNearestMultiple(); void GetWindowSize(int* x, int* y);