Add version information, add window and file icon

Version information nowe resides in EmulationStation.h and is compiled
into the EXE on Windows. An icon file is also included and on
non-Windows systems the window icon is loaded from PNG data compiled
into the EXE and set via SDL_WM_SetIcon().
This commit is contained in:
Bim Overbohm 2013-05-16 21:26:19 +02:00
parent 8803266660
commit 42829b3b6d
9 changed files with 487 additions and 2 deletions

View file

@ -92,11 +92,13 @@ endif()
#define basic sources and headers
set(ES_HEADERS
${CMAKE_CURRENT_SOURCE_DIR}/src/AudioManager.h
${CMAKE_CURRENT_SOURCE_DIR}/src/EmulationStation.h
${CMAKE_CURRENT_SOURCE_DIR}/src/FileData.h
${CMAKE_CURRENT_SOURCE_DIR}/src/FolderData.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Font.h
${CMAKE_CURRENT_SOURCE_DIR}/src/GameData.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Gui.h
${CMAKE_CURRENT_SOURCE_DIR}/src/ImageIO.h
${CMAKE_CURRENT_SOURCE_DIR}/src/InputConfig.h
${CMAKE_CURRENT_SOURCE_DIR}/src/InputManager.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Log.h
@ -119,6 +121,7 @@ set(ES_HEADERS
${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiTheme.h
${CMAKE_CURRENT_SOURCE_DIR}/src/pugiXML/pugiconfig.hpp
${CMAKE_CURRENT_SOURCE_DIR}/src/pugiXML/pugixml.hpp
${CMAKE_CURRENT_SOURCE_DIR}/data/Resources.h
)
set(ES_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/src/AudioManager.cpp
@ -126,6 +129,7 @@ set(ES_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/src/Font.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/GameData.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Gui.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/ImageIO.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/InputConfig.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/InputManager.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Log.cpp
@ -149,6 +153,8 @@ set(ES_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiMenu.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiTheme.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/pugiXML/pugixml.cpp
${CMAKE_CURRENT_SOURCE_DIR}/data/logo/ES_logo_16.cpp
${CMAKE_CURRENT_SOURCE_DIR}/data/logo/ES_logo_32.cpp
)
#add open gl specific sources
@ -162,6 +168,14 @@ else()
)
endif()
#-------------------------------------------------------------------------------
#define OS specific sources and headers
if(MSVC)
LIST(APPEND ES_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/src/EmulationStation.rc
)
endif()
#-------------------------------------------------------------------------------
#define libraries and directories
if(DEFINED BCMHOST)

17
data/Resources.h Normal file
View file

@ -0,0 +1,17 @@
#pragma once
//This is a shabby, sort of OS-independent resource "system"
//Use bin2h: http://code.google.com/p/bin2h/
//to convert the binary files to C code,
//adjust this file with their declarations and
//then compile the files into the project
//These point to the actual PNG file data:
//from ES_logo_16.cpp
extern const size_t es_logo_16_data_len;
extern const unsigned char es_logo_16_data[];
//from ES_logo_32.cpp
extern const size_t es_logo_32_data_len;
extern const unsigned char es_logo_32_data[];

94
data/logo/ES_logo_16.cpp Normal file
View file

@ -0,0 +1,94 @@
#include "../Resources.h"
//file auto-generated from ES_logo_16.png by bin2h.exe
const size_t es_logo_16_data_len = 954;
const unsigned char es_logo_16_data[954]=
{
0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,0x00,0x00,0x00,
0x0D,0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x10,0x00,0x00,
0x00,0x10,0x08,0x06,0x00,0x00,0x00,0x1F,0xF3,0xFF,0x61,
0x00,0x00,0x00,0x04,0x73,0x42,0x49,0x54,0x08,0x08,0x08,
0x08,0x7C,0x08,0x64,0x88,0x00,0x00,0x00,0x09,0x70,0x48,
0x59,0x73,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x01,
0x30,0x77,0xDF,0x5E,0x00,0x00,0x00,0x19,0x74,0x45,0x58,
0x74,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x00,0x77,
0x77,0x77,0x2E,0x69,0x6E,0x6B,0x73,0x63,0x61,0x70,0x65,
0x2E,0x6F,0x72,0x67,0x9B,0xEE,0x3C,0x1A,0x00,0x00,0x03,
0x37,0x49,0x44,0x41,0x54,0x38,0x8D,0x75,0x93,0x5D,0x68,
0x9B,0x75,0x14,0xC6,0x9F,0xF3,0xCF,0x67,0xB3,0xB6,0xF2,
0xE6,0xA3,0x1B,0xEF,0x3A,0xA9,0x59,0x43,0xDA,0x24,0x14,
0xD2,0x37,0xE8,0xFC,0xA0,0x6E,0xDD,0x86,0x48,0xB7,0xC9,
0x36,0x64,0xE2,0xC0,0x0E,0xA3,0xA0,0x5D,0xD7,0x8B,0x3A,
0xE8,0xC5,0xAE,0xD4,0x5D,0x88,0x17,0xBB,0x08,0xF3,0xCA,
0x4D,0xE8,0x6E,0x62,0xAF,0xF4,0xCA,0x0F,0xBA,0x6A,0x19,
0x8C,0x81,0xEB,0x9A,0x20,0xCB,0xD6,0x60,0xA1,0x29,0x34,
0x25,0xF6,0x6D,0xDF,0xB4,0x91,0x9A,0xBC,0x69,0xDE,0xFF,
0xF1,0xC2,0xB5,0x9B,0x50,0x1F,0x38,0x70,0x2E,0xCE,0x81,
0xE7,0x70,0x7E,0x0F,0x31,0x33,0x76,0x53,0xB2,0x7D,0x64,
0xA2,0xBB,0x1A,0x8F,0x03,0xC0,0xE3,0xA6,0x4C,0xE6,0xE6,
0x52,0xEA,0xDC,0x6E,0x73,0xF6,0xED,0x26,0x91,0x48,0x38,
0x74,0x3D,0x96,0xB2,0xDB,0x97,0xAF,0x85,0x64,0xEB,0xD1,
0x23,0xB5,0x37,0xA2,0xA7,0x8D,0x0B,0x21,0x00,0xB0,0x7C,
0x8D,0xFA,0xC9,0x17,0x4E,0x7E,0x64,0x8A,0x47,0x53,0x6A,
0xA3,0x31,0xFA,0x30,0x10,0x18,0x99,0x99,0x99,0xD9,0x02,
0x00,0x30,0x33,0x34,0x4D,0x73,0xA8,0xEA,0xD8,0xA4,0x10,
0x15,0x56,0x94,0x74,0x51,0x75,0x16,0xB2,0xF3,0x90,0x9C,
0xB5,0xAD,0x73,0xD6,0xB6,0xCE,0xF3,0x90,0x9C,0x73,0x9E,
0xCD,0xA6,0x15,0xA5,0x58,0x11,0x82,0xC7,0x54,0x75,0x52,
0xD3,0x34,0x07,0x33,0xFF,0xEB,0x40,0xD7,0x63,0xA9,0x52,
0xE9,0xCA,0x31,0x29,0x9B,0x51,0x2E,0xBF,0xAD,0x92,0x77,
0xBC,0xFE,0xE9,0x9E,0x07,0xB7,0xCA,0x36,0x7D,0x16,0x00,
0x7C,0x96,0xBF,0xB7,0x6F,0x73,0xBA,0x6F,0xD0,0x28,0xAB,
0x02,0xC0,0x95,0x52,0xE9,0x58,0xC9,0x6E,0x4F,0x01,0xF8,
0x18,0xCC,0x8C,0x60,0xF0,0x78,0x48,0x51,0xD2,0x45,0xA0,
0xC1,0xAA,0x7A,0xF9,0x7E,0x67,0x67,0xFF,0x41,0x66,0xC6,
0xB3,0xD5,0xDF,0xD9,0x79,0xF0,0xB2,0xAA,0xDE,0x6F,0x00,
0x9C,0x56,0x94,0xE2,0xF1,0x60,0x30,0xC4,0xCC,0x10,0x00,
0xC0,0xB1,0xD6,0xC3,0x9B,0x47,0x5E,0xD6,0xBD,0xBE,0xF1,
0x42,0x6B,0xEB,0xDD,0xF7,0x85,0x58,0x72,0x84,0xC3,0xE1,
0xAE,0x58,0x2C,0xB6,0x0F,0x00,0x22,0x91,0x48,0xE8,0x4F,
0x97,0xCB,0xF5,0x9B,0xDB,0xFD,0xEE,0xB8,0xD7,0x5B,0xE8,
0x61,0xE8,0xA6,0xDF,0xDF,0x0F,0x00,0xB4,0xFF,0xD2,0xA5,
0x89,0x6A,0x4F,0x4F,0xD4,0x48,0x26,0xA3,0x07,0x2E,0x0E,
0xDF,0xF2,0xFC,0x32,0xB5,0x48,0x44,0x9F,0x00,0xA8,0x02,
0xC8,0x01,0xC8,0x03,0x38,0x01,0x80,0x88,0xE8,0xEA,0xFE,
0x7D,0xEA,0x8B,0xAF,0xBD,0x72,0xF8,0xBD,0xC7,0xF9,0x47,
0xB9,0x35,0x43,0xCF,0x89,0x6A,0x3C,0x1E,0x37,0x92,0xC9,
0xA8,0xAD,0x52,0x81,0x6D,0x55,0x9F,0x15,0x42,0x88,0x27,
0xCB,0xBF,0x12,0xD1,0x0F,0x00,0xC2,0x00,0x74,0x22,0xFA,
0x5E,0x4A,0xF9,0x5D,0xAD,0x66,0xCE,0xD6,0xEB,0x75,0x74,
0x87,0x23,0xD1,0x80,0xAF,0x2D,0xBE,0xF3,0xC6,0x67,0x45,
0x44,0x0D,0x66,0x2E,0x49,0x29,0x8B,0x42,0x88,0xAB,0x00,
0x4E,0x4B,0x29,0x4F,0x10,0x51,0x03,0xC0,0xFC,0x7F,0x38,
0x68,0xCA,0x64,0x32,0x5E,0xCB,0xAA,0x1B,0xC9,0x64,0xD4,
0x0A,0xF8,0x7B,0xA5,0x94,0x8B,0x44,0xD4,0x02,0xE0,0x1D,
0x22,0x3A,0xC4,0xCC,0x2E,0x00,0x3E,0x22,0x22,0x66,0xCE,
0xB8,0xDD,0xAE,0xD7,0x9D,0x4E,0x27,0xB6,0x4F,0x20,0x66,
0x46,0xF0,0xDC,0x5B,0x1F,0x16,0xBF,0x34,0x2F,0x36,0x4F,
0xAD,0x3C,0xD7,0x76,0xA3,0x71,0x4A,0xAE,0x99,0x5B,0x4F,
0x9C,0x54,0x4C,0xD3,0x34,0x3C,0x1E,0x4F,0x37,0x11,0x2D,
0xEE,0x75,0x9B,0xCA,0xF9,0x2E,0xE3,0xF6,0xA1,0x03,0xBC,
0x31,0x74,0x27,0xFC,0xD5,0xF4,0xDD,0x7B,0x5F,0x0B,0x00,
0xA0,0xF2,0x1F,0xD3,0x7B,0xEE,0xAD,0x04,0x8C,0x41,0x57,
0x47,0xE5,0x55,0xFA,0x46,0xB6,0x3B,0xB7,0xF2,0xF9,0xFC,
0xDC,0xDC,0xDC,0xDC,0xF2,0xC2,0xC2,0x42,0x2D,0x97,0xCB,
0x65,0xF6,0xBA,0x4D,0xA5,0xB7,0xED,0xEF,0x6F,0x07,0xA3,
0x46,0xC7,0xEF,0x25,0x04,0x9C,0xD6,0xCA,0xF4,0x0E,0xCA,
0x0D,0xD5,0x36,0xBA,0x31,0xE0,0x54,0x21,0x80,0xE5,0x2F,
0x3C,0x09,0xDF,0x78,0xED,0xF6,0xD0,0xD0,0xF3,0x77,0x56,
0x57,0x6D,0xB3,0x00,0x10,0xF0,0x5B,0xBD,0xE7,0xBB,0x36,
0xFB,0x06,0xA3,0x46,0x87,0x20,0x60,0x20,0xB8,0xA1,0xFE,
0x54,0x68,0x19,0xDD,0x01,0x49,0xD3,0x34,0x87,0x3A,0xD6,
0x33,0x29,0x2A,0x2F,0xB1,0x92,0x8E,0x17,0xCF,0x2C,0x84,
0xB2,0xD2,0x02,0xAF,0x97,0x6D,0xBC,0x5E,0xB6,0xB1,0xB4,
0xC0,0x85,0xCF,0x9D,0xD9,0xF4,0x05,0xA5,0x58,0xF9,0x4C,
0xF0,0xD8,0xC0,0x53,0x94,0x69,0x3B,0x8D,0x89,0x44,0xC2,
0xA1,0xC7,0xCC,0x94,0x7D,0xD9,0xBA,0x16,0x69,0x36,0x8F,
0x9E,0x7A,0x73,0x63,0xF8,0x83,0xE4,0x5A,0x14,0x00,0x6E,
0xDC,0xF4,0xE5,0x7E,0xFE,0xB1,0xE5,0x7A,0x65,0x59,0x4C,
0xA9,0x4D,0x8D,0xD1,0x87,0x7F,0x3D,0x0D,0x13,0xFD,0x5F,
0x9C,0x47,0x86,0xDB,0x27,0xE2,0x5A,0x35,0x0E,0x00,0x99,
0x07,0x4D,0x99,0xD4,0xF5,0xA5,0x5D,0xE3,0xFC,0x0F,0x8E,
0x59,0x81,0x6E,0x31,0xC1,0x05,0xE7,0x00,0x00,0x00,0x00,
0x49,0x45,0x4E,0x44,0xAE,0x42,0x60,0x82,
};

208
data/logo/ES_logo_32.cpp Normal file
View file

@ -0,0 +1,208 @@
#include "../Resources.h"
//file auto-generated from ES_logo_32.png by bin2h.exe
const size_t es_logo_32_data_len = 2205;
const unsigned char es_logo_32_data[2205]=
{
0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,0x00,0x00,0x00,
0x0D,0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x20,0x00,0x00,
0x00,0x20,0x08,0x06,0x00,0x00,0x00,0x73,0x7A,0x7A,0xF4,
0x00,0x00,0x00,0x04,0x73,0x42,0x49,0x54,0x08,0x08,0x08,
0x08,0x7C,0x08,0x64,0x88,0x00,0x00,0x00,0x09,0x70,0x48,
0x59,0x73,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x01,
0x68,0xE3,0xFB,0xB4,0x00,0x00,0x00,0x19,0x74,0x45,0x58,
0x74,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x00,0x77,
0x77,0x77,0x2E,0x69,0x6E,0x6B,0x73,0x63,0x61,0x70,0x65,
0x2E,0x6F,0x72,0x67,0x9B,0xEE,0x3C,0x1A,0x00,0x00,0x08,
0x1A,0x49,0x44,0x41,0x54,0x58,0x85,0x95,0x57,0x59,0x6C,
0x54,0xE7,0x15,0xFE,0xFE,0xBB,0xCC,0x9D,0xC5,0xCB,0x60,
0x9C,0xC1,0xF6,0xD4,0x0D,0xC3,0x5C,0x8F,0xB9,0x37,0x21,
0xE0,0xF1,0x40,0x6A,0x82,0x0D,0x08,0xCA,0xF2,0xC0,0x43,
0xD5,0x56,0x95,0x9A,0x87,0x8A,0x96,0x2E,0xAA,0xE4,0xD0,
0xA8,0x08,0x48,0x2A,0x11,0xC3,0x03,0x9B,0x50,0x5B,0x12,
0xA5,0x45,0x4E,0x52,0x54,0x81,0xD4,0x87,0x06,0xB5,0x52,
0xD5,0x84,0xA4,0x05,0x11,0xDA,0x82,0xC0,0xC6,0x66,0x69,
0x66,0xC0,0xC6,0x9A,0x20,0xEF,0xC3,0xE0,0xB1,0xC7,0x9E,
0xF5,0x2E,0xA7,0x0F,0x5E,0x34,0x8B,0x07,0xCA,0x91,0xCE,
0xC3,0x3D,0xF7,0xFC,0xE7,0x3B,0xFF,0x39,0xDF,0x7F,0xFF,
0x73,0x19,0x11,0xE1,0x79,0xA4,0xA5,0xA1,0x75,0x17,0x07,
0xEE,0x04,0x07,0x56,0x26,0x98,0xA2,0x08,0x00,0x3A,0xA7,
0x69,0x26,0x68,0xC6,0x84,0x79,0xE0,0x7A,0xFF,0xBF,0xFE,
0xF6,0x3C,0xF1,0x84,0xE7,0x42,0x07,0x20,0x90,0xB0,0xE5,
0xE7,0xE3,0x87,0x94,0x75,0x33,0x9B,0xF2,0xEC,0x37,0xCB,
0xAE,0xE0,0x77,0xCB,0x8E,0x6C,0x01,0xF0,0x5C,0x09,0x70,
0xA5,0x5E,0x04,0x02,0x01,0x51,0x55,0xD5,0xB6,0x42,0xBB,
0x01,0xDD,0xCA,0x53,0x71,0xDE,0x3C,0x09,0x30,0xA0,0x5B,
0x0B,0xED,0xAA,0xAA,0xB6,0x05,0x02,0x01,0xB1,0x14,0x0E,
0x5B,0xAC,0x05,0xB2,0x2C,0xBB,0x38,0xAE,0xF6,0x73,0x4D,
0xAB,0xF5,0x88,0xE2,0xF0,0x7B,0x15,0x15,0x99,0xA3,0x89,
0x29,0xDB,0xFE,0xA5,0xE0,0x76,0x2F,0xCF,0xF8,0xEC,0x6F,
0x8E,0x1C,0xAF,0x76,0x1A,0x55,0x79,0x6B,0x26,0xF9,0x09,
0xFC,0xA6,0xEE,0x60,0xF4,0x2B,0xA9,0x2F,0x49,0x88,0x9C,
0xCD,0x54,0x3A,0x4E,0x4A,0xF1,0xF8,0xDB,0x6E,0x4D,0x6B,
0x1F,0x15,0x84,0xF0,0x28,0xD1,0xB6,0x87,0x0F,0x1F,0x46,
0x8A,0xC0,0x88,0x28,0x4F,0x1B,0x1B,0x1B,0x5F,0x91,0xE5,
0xB6,0x21,0xBB,0xBD,0xCB,0x00,0x74,0x72,0xBB,0xDB,0x63,
0xB2,0xDC,0x1A,0x71,0x3A,0xCF,0xA5,0x7F,0xCF,0x52,0xA1,
0x87,0x30,0xE9,0x69,0x1A,0x62,0x23,0xA1,0x73,0x4E,0x67,
0xBA,0x55,0x96,0x23,0xED,0x6E,0x77,0x4C,0x07,0xE8,0x96,
0xCD,0x66,0x6C,0x94,0xE5,0xC1,0xC6,0xC6,0xC6,0x57,0x0A,
0xF1,0xF2,0x1E,0xBC,0x5E,0xAF,0x4B,0x96,0x5B,0x87,0x45,
0xF1,0x11,0x01,0x66,0x8E,0x1A,0x04,0x98,0xB4,0x02,0xE6,
0x8D,0x79,0xA0,0x3B,0xFC,0x14,0x5D,0xB0,0x5F,0xA7,0x0B,
0xF6,0xEB,0x74,0x87,0x9F,0x5A,0x48,0xE0,0x09,0x0E,0xDC,
0x30,0x01,0x32,0x00,0x32,0x73,0x74,0x48,0x14,0x69,0xA3,
0x2C,0x0F,0x7A,0xBD,0x5E,0x57,0x2E,0xE6,0x42,0x0B,0x02,
0x81,0x80,0x18,0x8F,0xDB,0xBA,0x86,0x87,0x7F,0xBD,0x2A,
0x99,0x0C,0x2C,0xCA,0x0D,0x9B,0xAD,0x47,0xDF,0xB5,0xB4,
0x73,0x62,0xC8,0x1A,0x12,0x75,0xA6,0x27,0x44,0x12,0x7B,
0x01,0x40,0x63,0x5A,0x93,0x40,0x82,0x63,0x45,0xBA,0x51,
0xDB,0xFB,0xE4,0xCF,0x55,0xCD,0xA9,0xA9,0x45,0xC9,0xDD,
0x6B,0xB3,0x99,0x7B,0xDD,0xEE,0x7B,0xA9,0xCA,0xCA,0xB5,
0xDD,0xDD,0xDD,0x1A,0x90,0x73,0x0A,0x12,0x89,0xC4,0x5A,
0x4D,0x5B,0xE1,0x49,0x26,0xFD,0x45,0xE0,0x8C,0x65,0xE0,
0x72,0x9D,0x4A,0x56,0x54,0x5C,0x1C,0xBC,0xCD,0x1E,0xEF,
0xC9,0x66,0xB3,0xDD,0xE1,0x70,0x38,0x9D,0xEB,0xE3,0xF1,
0x78,0xAC,0x51,0xFB,0x78,0xE0,0x17,0x36,0xD7,0x87,0x3B,
0xE2,0xD6,0xFA,0x7D,0x91,0x88,0x5D,0x2A,0xE0,0xD7,0xEA,
0x54,0x8A,0xAB,0xD3,0x75,0xCF,0xDD,0x44,0x62,0x2D,0x80,
0x6B,0x45,0x1C,0x90,0xE5,0x0D,0x1D,0x6E,0x77,0x7B,0x2C,
0xB7,0xFC,0x92,0xF4,0x80,0xBC,0xDE,0xAD,0x31,0x9F,0xAF,
0xE5,0x30,0x00,0xBE,0xB0,0x87,0x45,0x3D,0x05,0xF8,0x16,
0x9F,0xEF,0xF0,0x56,0xAF,0x37,0xF6,0x40,0x92,0xF2,0xDA,
0xD0,0xEE,0x76,0xC7,0x36,0xC8,0x72,0x47,0x49,0x0E,0x34,
0x37,0x37,0xDB,0x65,0xB9,0x6D,0x7C,0xBE,0xE7,0x8C,0xA5,
0xC8,0xEB,0xDD,0x1A,0x53,0x14,0xC5,0xFF,0x2C,0xE0,0x42,
0x55,0x14,0xC5,0xBF,0xD5,0xEB,0x8D,0xA5,0x18,0xA3,0x79,
0x4E,0xB4,0xC9,0xF2,0x78,0x73,0x73,0xB3,0x3D,0xD7,0x2F,
0xAF,0xDC,0x53,0x09,0xDB,0xFE,0x68,0xF4,0xC7,0x95,0x00,
0x03,0x00,0xB8,0x5C,0xA7,0x92,0x3C,0x9F,0x78,0x37,0x18,
0x0C,0xF6,0x2C,0xD6,0xD3,0xA7,0x49,0x30,0x18,0xEC,0x49,
0xF0,0xFC,0xBB,0xA7,0x5C,0xAE,0x24,0x30,0x1B,0xF1,0x67,
0xD1,0x68,0xA5,0x34,0x3D,0xBD,0x3F,0xD7,0x2F,0x9F,0x2C,
0x2E,0x6E,0xF7,0xD4,0xE5,0xEF,0x84,0x71,0x1A,0x71,0xDB,
0x99,0x1E,0x7F,0x45,0xC5,0xC5,0xC1,0xBE,0xBE,0xEB,0x47,
0x54,0x55,0x7D,0x19,0x80,0x5C,0x08,0x22,0x49,0xD2,0x95,
0xDE,0xDE,0xDE,0x49,0x00,0xF0,0xF9,0x7C,0x0A,0xCF,0xF3,
0x5B,0x89,0x28,0xC9,0x71,0x5C,0xBF,0x28,0x8A,0xB7,0xEE,
0xF6,0xF5,0x1D,0xE1,0x1A,0x1A,0xBE,0xB7,0x33,0x1E,0xF7,
0xD6,0xDB,0x1D,0x3D,0xD9,0xCD,0xDB,0x2B,0x52,0x03,0xA1,
0x1F,0x02,0xE8,0x58,0x48,0xA0,0xA1,0xB5,0x75,0x17,0x09,
0xC2,0x16,0xE8,0xBA,0x35,0xBB,0x72,0xA5,0x9D,0x6A,0xA4,
0xAF,0xE3,0x18,0xB0,0xF4,0x49,0x67,0x84,0x5D,0x7D,0xBC,
0x87,0x88,0x0C,0x45,0x51,0xFE,0x02,0xA0,0xA6,0x00,0x5F,
0x48,0xA5,0x52,0xEF,0x34,0x34,0x34,0x9C,0x11,0x04,0xE1,
0x36,0xCF,0xF3,0x0E,0x22,0xAA,0x66,0x8C,0x31,0x22,0x8A,
0x67,0xB3,0xD9,0x5E,0x22,0xDA,0xDC,0xD8,0xD8,0xB8,0xE7,
0xAD,0xC0,0xDA,0x0B,0xAF,0xB5,0x7D,0x73,0x1D,0x00,0x38,
0xA3,0xA3,0x51,0xBF,0xDF,0x7F,0x86,0x31,0x96,0x82,0x8E,
0xCB,0x02,0x38,0xEE,0xC4,0xF8,0xA1,0x43,0x0A,0x09,0x02,
0xD2,0xAA,0xBA,0x10,0xDD,0xFA,0x20,0x24,0x66,0xB3,0xD9,
0xEE,0xB9,0x47,0x1E,0x40,0x19,0x80,0x09,0x00,0xFA,0x7C,
0x01,0x00,0x44,0x45,0x51,0xFC,0x11,0x11,0xD5,0x12,0x51,
0x9A,0x31,0x36,0x06,0xC0,0x04,0x60,0x03,0x50,0x0E,0x00,
0xD9,0x6C,0xB6,0x3B,0x3A,0x3D,0xBD,0xF0,0x29,0x7E,0x35,
0xD0,0x52,0x1D,0x9B,0x9C,0xF8,0x29,0x99,0x84,0xAE,0xDE,
0x1B,0xDB,0x05,0x00,0x8E,0x99,0x4D,0x9B,0xF2,0xB6,0xC6,
0x4F,0x4F,0x83,0xE9,0x7A,0xA2,0xF0,0xA8,0x01,0x30,0x19,
0x63,0xFB,0x00,0x68,0xA6,0x69,0xEA,0xB5,0xB5,0xB5,0x7F,
0x1D,0x1B,0x1B,0xFB,0x07,0x00,0x2B,0x63,0x2C,0x41,0x44,
0xBF,0x05,0xF0,0x99,0x28,0x8A,0x31,0x22,0x92,0x00,0x20,
0x1C,0x0E,0xA7,0xD7,0xAC,0x5E,0x93,0xC8,0x6A,0xD9,0x25,
0x16,0xD1,0x02,0xAB,0x64,0x45,0xED,0xB2,0x3A,0x00,0x00,
0xEB,0x65,0x65,0x9C,0x69,0xB1,0x14,0x5D,0x14,0x52,0x30,
0x08,0x12,0x67,0x3F,0x32,0x05,0xE2,0x24,0xA2,0x4E,0x22,
0x3A,0xCB,0x18,0xFB,0xC3,0xD8,0xD8,0xD8,0x6B,0x00,0xFE,
0x08,0x20,0x09,0x60,0x29,0x80,0x63,0x8C,0xB1,0x4B,0xBA,
0xAE,0xFF,0x53,0xD7,0xF5,0x05,0xCE,0x70,0x3C,0xD7,0x1B,
0x9B,0x9C,0x28,0x0A,0xC6,0x71,0x9C,0x58,0xF2,0x36,0x2C,
0x21,0xD3,0x00,0x12,0x73,0xCA,0x88,0x28,0x56,0x53,0x53,
0x73,0x9E,0x88,0x0E,0x03,0x18,0x61,0x8C,0x4D,0xCC,0x25,
0xE2,0x63,0x8C,0x7D,0xC4,0x18,0x63,0xCF,0x0A,0x28,0x70,
0xD9,0xAC,0x56,0x68,0xCC,0xA8,0x2A,0x98,0xA6,0x35,0x2D,
0xE2,0x6F,0xA4,0xD3,0xE9,0xFA,0xDC,0xD6,0xA8,0xAA,0xFA,
0x2D,0x00,0xF7,0x1D,0x0E,0xC7,0xF2,0xE9,0xE9,0xE9,0x35,
0x1C,0xC7,0x9D,0x07,0xE0,0x03,0x60,0x91,0x65,0x79,0x05,
0x80,0x01,0xD3,0x30,0x9B,0x96,0x38,0xAB,0x8A,0x82,0x99,
0xA6,0xA9,0x09,0x00,0x12,0x65,0x57,0xAE,0x60,0x9E,0x84,
0x46,0x55,0x15,0x8C,0xF2,0x72,0x90,0x20,0x38,0x3C,0x1E,
0x8F,0x35,0x17,0x8C,0x31,0x26,0x58,0xAD,0xD6,0x41,0x45,
0x51,0x40,0x44,0x02,0xC7,0x71,0x9D,0x44,0xD4,0xCA,0x18,
0x7B,0x39,0x91,0x48,0xCC,0xF0,0x3C,0xAF,0x13,0x91,0x7D,
0xCE,0x3D,0xDD,0xDF,0xDF,0x3F,0xE0,0xF1,0x78,0xAC,0x4B,
0x9C,0x4B,0x1C,0x16,0xD1,0x32,0x6B,0xCC,0xA4,0x11,0x9B,
0x9C,0x00,0x99,0x04,0x02,0xCD,0x08,0x30,0xCD,0x03,0xCB,
0x8E,0x1C,0x99,0x3F,0x86,0xDF,0x1E,0xEC,0xEC,0xAC,0x06,
0x80,0xB4,0xE2,0xD5,0xEC,0xE3,0xE3,0x01,0x00,0xFF,0x06,
0x60,0x00,0x48,0x10,0x91,0x08,0x60,0x9E,0x33,0x1C,0x11,
0xBD,0x00,0xA0,0x1F,0x80,0x97,0x88,0x9C,0x98,0x65,0x7F,
0x0C,0x40,0x04,0xC0,0x09,0x00,0xB0,0x58,0x2C,0x81,0xEA,
0x25,0xE5,0x0B,0x55,0xBE,0xD1,0x7D,0x3D,0x3A,0x19,0x8B,
0x7D,0xCC,0x78,0x96,0x66,0x06,0xBB,0x9C,0x37,0x90,0x34,
0x6C,0xDC,0xF8,0x68,0xE0,0xB3,0x8E,0x24,0x49,0x9D,0x71,
0x5B,0xCF,0x80,0xFF,0x6B,0x7B,0x67,0x06,0xFA,0xFF,0x13,
0x7A,0x49,0x51,0x14,0x05,0x8B,0x7C,0x88,0x00,0xDC,0x08,
0x06,0x83,0xA3,0x2B,0x57,0xAE,0xF4,0x70,0x1C,0xF7,0x2A,
0x80,0x5A,0xD3,0x34,0x6F,0x1B,0x86,0x71,0xAD,0xBF,0xBF,
0x3F,0xC3,0x18,0xE3,0x5F,0x5B,0xD3,0xF0,0xE5,0xE9,0xCD,
0x43,0xDE,0xFA,0x6A,0x47,0xCF,0xA7,0xC9,0xED,0x15,0xA7,
0x3F,0x09,0xD9,0x7B,0x7A,0x6E,0xBD,0xB8,0xC0,0x81,0xFC,
0xA6,0x4C,0x9C,0xAD,0xFC,0xF8,0x97,0x07,0x27,0x5F,0x97,
0xA4,0x94,0x9F,0x47,0x7C,0x87,0xA5,0xDE,0x67,0xAA,0x87,
0x82,0xD7,0xBE,0x7C,0x07,0xC0,0x7F,0x17,0x49,0x00,0x00,
0x70,0xFF,0xFE,0xFD,0x30,0x80,0x70,0xA1,0xBD,0x65,0xB5,
0xEF,0xD0,0x8E,0xE5,0x53,0xF5,0x7E,0x57,0x4A,0x00,0x52,
0xEB,0xF8,0xA1,0xBF,0x67,0x6C,0xE4,0x3A,0x9E,0xEB,0x93,
0x77,0x0A,0x2A,0x53,0xD2,0xC9,0xEA,0x0F,0x32,0x53,0x98,
0x2B,0x4A,0x64,0x9F,0xD5,0x6E,0x38,0xF0,0x86,0xAA,0xAA,
0xFE,0x52,0xE0,0xA5,0x44,0x55,0x55,0xBF,0x43,0x34,0xDE,
0xD8,0x17,0x88,0xD8,0x01,0x80,0x00,0x7C,0x70,0xAF,0x7A,
0x2A,0xC3,0x97,0x9F,0x2C,0x99,0xC0,0x94,0x2D,0xB5,0x3F,
0xB5,0x9A,0xB7,0xCC,0xDD,0x45,0x20,0x89,0x61,0xE8,0x7D,
0x87,0x33,0xEB,0x66,0x97,0x1A,0xD7,0xBF,0x74,0x98,0x31,
0xC6,0x3F,0x0B,0x98,0x31,0xC6,0xAF,0x5F,0xD3,0x78,0xD8,
0xED,0xC8,0x5E,0x7A,0x7F,0xCB,0x90,0x53,0xE2,0x67,0x77,
0xC3,0x00,0xAC,0xAE,0x4E,0x59,0x6C,0x34,0x95,0x77,0x19,
0x2D,0x70,0x40,0x51,0x94,0xF5,0xE9,0x55,0xFC,0xA7,0x5F,
0xFD,0xA9,0xBC,0xA2,0x70,0x56,0x66,0x19,0x82,0xEB,0x54,
0x3A,0x59,0x71,0x31,0x3B,0xC8,0x1E,0x1B,0x25,0x07,0x12,
0x8B,0xC5,0x12,0x78,0xC1,0x4E,0x1F,0xEE,0x58,0x1E,0xAF,
0xDF,0x17,0x88,0xD8,0xE7,0xC1,0xE7,0xC5,0x24,0xE0,0xFB,
0x9F,0x2C,0x8F,0xDF,0x8D,0x5A,0x77,0x86,0x42,0xA1,0x6B,
0x40,0x0E,0x07,0x1C,0x0E,0x47,0x97,0x31,0x9A,0x0A,0xDB,
0x7B,0xF4,0x55,0xC9,0x80,0x90,0x97,0x02,0x49,0x0C,0xE3,
0xBF,0xB2,0xD9,0xD3,0x3B,0x05,0xEF,0x77,0x3B,0xC7,0x2F,
0x3C,0x08,0x59,0xC5,0xF5,0x2D,0xBE,0x84,0x68,0xA1,0xD9,
0x91,0x2C,0xCB,0x9A,0xEA,0xEB,0x05,0x87,0xD2,0x90,0xD4,
0x7E,0x52,0xF9,0xA4,0x6A,0xB6,0xE7,0xC5,0x72,0xE7,0xB1,
0xCD,0x1C,0x49,0x08,0x61,0x87,0xC3,0xD1,0x55,0x54,0x01,
0x60,0x76,0x1C,0x67,0x75,0x96,0xDE,0x47,0xE7,0xCB,0xEB,
0xB4,0xFA,0x9C,0x1C,0x68,0xB6,0x86,0x07,0xCC,0xE1,0x9B,
0xC7,0xD8,0xE0,0x3A,0x00,0x98,0x9E,0xE6,0x11,0x0C,0x4A,
0x00,0x00,0x55,0xCD,0xA0,0xBC,0xDC,0x98,0xF5,0xFD,0x08,
0x37,0xF1,0x04,0xEB,0xE6,0x96,0x2C,0xC8,0xC8,0x8C,0x88,
0xD7,0x2F,0xBE,0x38,0x34,0x34,0x49,0xCD,0x79,0xE3,0xF9,
0xA2,0x63,0x79,0x9B,0x32,0x64,0xEF,0x0A,0x18,0xD0,0xBF,
0x41,0xEE,0xF6,0x55,0x31,0xB9,0x55,0x89,0x38,0xCF,0x35,
0xA5,0x47,0x92,0x62,0xC8,0x34,0x40,0x4F,0xD3,0xD4,0x3D,
0x16,0x3A,0xF7,0x03,0x67,0xBA,0xB5,0x49,0x8E,0xB4,0x6F,
0x73,0xC7,0xF4,0xA3,0xA0,0x5B,0x6F,0xDA,0x8C,0x8D,0xCD,
0x8B,0x8F,0xE5,0xA5,0x7F,0x4C,0x6A,0xA5,0xCF,0xB5,0x5A,
0xE6,0x11,0x87,0xCD,0xF7,0x2A,0x32,0xF6,0xA3,0x09,0x5B,
0x6A,0xBF,0x8B,0xCB,0xEE,0xF6,0xF9,0x32,0xF6,0xE3,0xC7,
0x46,0xAA,0xAB,0xAA,0x8C,0xBC,0x35,0x13,0x13,0x3C,0x0E,
0xBE,0x55,0x17,0xED,0xEB,0x93,0x92,0xE6,0x0C,0xCE,0xA6,
0x58,0xE5,0x49,0xC9,0x88,0xBF,0xED,0x2E,0xD3,0xDA,0x47,
0x13,0x42,0x78,0x34,0xFE,0x7F,0xFE,0x98,0xE4,0xCC,0x87,
0xA2,0xA2,0x28,0x6D,0x85,0xF6,0x0D,0x1B,0xBC,0x67,0xAE,
0x7E,0xE1,0x28,0xDA,0xF9,0xD5,0x2F,0x1C,0xB4,0x61,0x83,
0xF7,0xCC,0x22,0xB3,0x61,0x5B,0x73,0x73,0xB3,0x58,0x0A,
0xA7,0xE4,0xCF,0xE9,0xDC,0xDC,0x7E,0xB5,0xD0,0x2E,0x08,
0x48,0xEB,0x46,0xF1,0x25,0xA7,0x1B,0x0C,0x82,0x80,0xC2,
0xF9,0x01,0xC1,0x60,0xB0,0x28,0x46,0x5E,0xBC,0xA7,0xBD,
0x5C,0x4C,0x74,0x9D,0x5D,0xEA,0xE8,0xA8,0xD9,0xC6,0x18,
0xCA,0x44,0xD1,0x14,0x01,0x40,0xD3,0x38,0x8D,0x08,0x33,
0xA6,0x89,0x4B,0xCF,0x1B,0xEF,0x7F,0x25,0x1D,0xC4,0x52,
0xA8,0x9F,0x66,0x66,0x00,0x00,0x00,0x00,0x49,0x45,0x4E,
0x44,0xAE,0x42,0x60,0x82,
};

12
src/EmulationStation.h Normal file
View file

@ -0,0 +1,12 @@
#pragma once
// These numbers and strings need to be manually updated for a new version.
// Do this version number update as the very last commit for the new release version.
#define PROGRAM_VERSION_MAJOR 1
#define PROGRAM_VERSION_MINOR 0
#define PROGRAM_VERSION_MAINTENANCE 0
#define PROGRAM_VERSION_REVISION 0
#define PROGRAM_VERSION_STRING "1.0.0.0 - built " __DATE__ " - " __TIME__
#define RESOURCE_VERSION_STRING "1,0,0,0\0"
#define RESOURCE_VERSION PROGRAM_VERSION_MAJOR,PROGRAM_VERSION_MINOR,PROGRAM_VERSION_MAINTENANCE,PROGRAM_VERSION_REVISION

39
src/EmulationStation.rc Normal file
View file

@ -0,0 +1,39 @@
#include "EmulationStation.h"
#include "windows.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION RESOURCE_VERSION
PRODUCTVERSION RESOURCE_VERSION
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "Comments", "\0"
VALUE "FileDescription", "EmulationStation multi-emulator frontend\0"
VALUE "FileVersion", RESOURCE_VERSION_STRING
VALUE "InternalName", "emulationstation.exe\0"
VALUE "LegalCopyright", "\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "emulationstation.exe\0"
VALUE "ProductName", "EmulationStation\0"
VALUE "ProductVersion", RESOURCE_VERSION_STRING
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x407, 1200
END
END
IDI_ES_LOGO ICON DISCARDABLE "../data/logo/ES_logo.ico"

63
src/ImageIO.cpp Normal file
View file

@ -0,0 +1,63 @@
#include "ImageIO.h"
#include "Log.h"
std::vector<unsigned char> ImageIO::loadFromMemoryRGBA32(const unsigned char * data, const size_t size, size_t & width, size_t & height)
{
std::vector<unsigned char> rawData;
width = 0;
height = 0;
FIMEMORY * fiMemory = FreeImage_OpenMemory((BYTE *)data, size);
if (fiMemory != nullptr) {
//detect the filetype from data
FREE_IMAGE_FORMAT format = FreeImage_GetFileTypeFromMemory(fiMemory);
if (format != FIF_UNKNOWN && FreeImage_FIFSupportsReading(format))
{
//file type is supported. load image
FIBITMAP * fiBitmap = FreeImage_LoadFromMemory(format, fiMemory);
if (fiBitmap != nullptr)
{
//loaded. convert to 32bit
FIBITMAP * fiConverted = FreeImage_ConvertTo32Bits(fiBitmap);
if (fiConverted != nullptr)
{
width = FreeImage_GetWidth(fiConverted);
height = FreeImage_GetHeight(fiConverted);
unsigned int pitch = FreeImage_GetPitch(fiConverted);
//loop through scanlines and add all pixel data to the return vector
//this is necessary, because width*height*bpp might not be == pitch
unsigned char * tempData = new unsigned char[width * height * 4];
for (size_t i = 0; i < height; i++)
{
const BYTE * scanLine = FreeImage_GetScanLine(fiConverted, i);
memcpy(tempData + (i * width * 4), scanLine, width * 4);
}
//convert from BGRA to RGBA
for(size_t i = 0; i < width*height; i++)
{
RGBQUAD bgra = ((RGBQUAD *)tempData)[i];
RGBQUAD rgba;
rgba.rgbBlue = bgra.rgbRed;
rgba.rgbGreen = bgra.rgbGreen;
rgba.rgbRed = bgra.rgbBlue;
rgba.rgbReserved = bgra.rgbReserved;
((RGBQUAD *)tempData)[i] = rgba;
}
rawData = std::vector<unsigned char>(tempData, tempData + width * height * 4);
//free converted data
FreeImage_Unload(fiConverted);
}
//free bitmap data
FreeImage_Unload(fiBitmap);
}
}
else
{
LOG(LogError) << "Error - File type unknown/unsupported!";
}
//free FIMEMORY again
FreeImage_CloseMemory(fiMemory);
}
return rawData;
}

11
src/ImageIO.h Normal file
View file

@ -0,0 +1,11 @@
#pragma once
#include <vector>
#include <FreeImage.h>
class ImageIO
{
public:
static std::vector<unsigned char> loadFromMemoryRGBA32(const unsigned char * data, const size_t size, size_t & width, size_t & height);
};

View file

@ -12,6 +12,9 @@
#include <SDL.h>
#include "InputManager.h"
#include "Log.h"
#include "ImageIO.h"
#include "../data/Resources.h"
#include "EmulationStation.h"
extern bool WINDOWED;
@ -35,6 +38,32 @@ namespace Renderer
return false;
}
//ATM it is best to just leave the window icon alone on windows.
//When compiled as a Windows application, ES at least has an icon int the taskbar
//The method below looks pretty shite as alpha isn't taken into account...
#ifndef WIN32
//try loading PNG from memory
size_t width = 0;
size_t height = 0;
std::vector<unsigned char> rawData = ImageIO::loadFromMemoryRGBA32(es_logo_32_data, es_logo_32_data_len, width, height);
if (!rawData.empty()) {
//SDL interprets each pixel as a 32-bit number, so our masks must depend on the endianness (byte order) of the machine
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
Uint32 rmask = 0xff000000; Uint32 gmask = 0x00ff0000; Uint32 bmask = 0x0000ff00; Uint32 amask = 0x000000ff;
#else
Uint32 rmask = 0x000000ff; Uint32 gmask = 0x0000ff00; Uint32 bmask = 0x00ff0000;Uint32 amask = 0xff000000;
#endif
//try creating SDL surface from logo data
SDL_Surface * logoSurface = SDL_CreateRGBSurfaceFrom((void *)rawData.data(), width, height, 32, width*4, rmask, gmask, bmask, amask);
if (logoSurface != nullptr) {
//change window icon. this sucks atm, but there's nothing better we can do. SDL 1.3 or 2.0 should sort this out...
SDL_WM_SetIcon(logoSurface, nullptr);
}
}
#endif
SDL_WM_SetCaption("EmulationStation", "EmulationStation");
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
@ -48,8 +77,6 @@ namespace Renderer
return false;
}
SDL_WM_SetCaption("EmulationStation", NULL);
//usually display width/height are not specified, i.e. zero, which SDL automatically takes as "native resolution"
//so, since other things rely on the size of the screen (damn currently unnormalized coordinate system), we set it here
//even though the system was already initialized