Conflicts:
	src/platform.cpp
This commit is contained in:
Aloshi 2013-05-17 10:05:05 -05:00
commit 79b7ab10b1
10 changed files with 528 additions and 22 deletions

View file

@ -35,7 +35,7 @@ endif()
find_package(FreeType REQUIRED) find_package(FreeType REQUIRED)
find_package(FreeImage REQUIRED) find_package(FreeImage REQUIRED)
find_package(SDL REQUIRED) find_package(SDL REQUIRED)
find_package(Boost REQUIRED) find_package(Boost REQUIRED COMPONENTS system filesystem)
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
#set up compiler flags and excutable names #set up compiler flags and excutable names
@ -47,6 +47,8 @@ if(MSVC)
set(CMAKE_DEBUG_POSTFIX "d") set(CMAKE_DEBUG_POSTFIX "d")
add_definitions(-D_CRT_SECURE_NO_DEPRECATE) add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") #multi-processor compilation
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP") #multi-processor compilation
endif() endif()
if(CMAKE_COMPILER_IS_GNUCXX) if(CMAKE_COMPILER_IS_GNUCXX)
@ -92,11 +94,13 @@ endif()
#define basic sources and headers #define basic sources and headers
set(ES_HEADERS set(ES_HEADERS
${CMAKE_CURRENT_SOURCE_DIR}/src/AudioManager.h ${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/FileData.h
${CMAKE_CURRENT_SOURCE_DIR}/src/FolderData.h ${CMAKE_CURRENT_SOURCE_DIR}/src/FolderData.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Font.h ${CMAKE_CURRENT_SOURCE_DIR}/src/Font.h
${CMAKE_CURRENT_SOURCE_DIR}/src/GameData.h ${CMAKE_CURRENT_SOURCE_DIR}/src/GameData.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Gui.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/InputConfig.h
${CMAKE_CURRENT_SOURCE_DIR}/src/InputManager.h ${CMAKE_CURRENT_SOURCE_DIR}/src/InputManager.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Log.h ${CMAKE_CURRENT_SOURCE_DIR}/src/Log.h
@ -119,6 +123,7 @@ set(ES_HEADERS
${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiTheme.h ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiTheme.h
${CMAKE_CURRENT_SOURCE_DIR}/src/pugiXML/pugiconfig.hpp ${CMAKE_CURRENT_SOURCE_DIR}/src/pugiXML/pugiconfig.hpp
${CMAKE_CURRENT_SOURCE_DIR}/src/pugiXML/pugixml.hpp ${CMAKE_CURRENT_SOURCE_DIR}/src/pugiXML/pugixml.hpp
${CMAKE_CURRENT_SOURCE_DIR}/data/Resources.h
) )
set(ES_SOURCES set(ES_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/src/AudioManager.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/AudioManager.cpp
@ -126,6 +131,7 @@ set(ES_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/src/Font.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/Font.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/GameData.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/GameData.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Gui.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/InputConfig.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/InputManager.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/InputManager.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Log.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/Log.cpp
@ -149,6 +155,8 @@ set(ES_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiMenu.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiMenu.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiTheme.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiTheme.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/pugiXML/pugixml.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 #add open gl specific sources
@ -162,6 +170,14 @@ else()
) )
endif() 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 #define libraries and directories
if(DEFINED BCMHOST) if(DEFINED BCMHOST)
@ -211,3 +227,15 @@ set(LIBRARY_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
include_directories(${ES_INCLUDE_DIRS}) include_directories(${ES_INCLUDE_DIRS})
add_executable(emulationstation ${ES_SOURCES} ${ES_HEADERS}) add_executable(emulationstation ${ES_SOURCES} ${ES_HEADERS})
target_link_libraries(emulationstation ${ES_LIBRARIES}) target_link_libraries(emulationstation ${ES_LIBRARIES})
#special properties for windows builds
if(MSVC)
#show console in debug builds, but not in proper release builds
#Note that up to CMake 2.8.10 this feature is broken: http://public.kitware.com/Bug/view.php?id=12566
set_target_properties(emulationstation PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
set_target_properties(emulationstation PROPERTIES COMPILE_DEFINITIONS_DEBUG "_CONSOLE")
set_target_properties(emulationstation PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:CONSOLE")
set_target_properties(emulationstation PROPERTIES COMPILE_DEFINITIONS_RELWITHDEBINFO "_CONSOLE")
set_target_properties(emulationstation PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS")
set_target_properties(emulationstation PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS")
endif()

19
data/Resources.h Normal file
View file

@ -0,0 +1,19 @@
#pragma once
#include <stddef.h>
//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"

65
src/ImageIO.cpp Normal file
View file

@ -0,0 +1,65 @@
#include "ImageIO.h"
#include <memory.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 <SDL.h>
#include "InputManager.h" #include "InputManager.h"
#include "Log.h" #include "Log.h"
#include "ImageIO.h"
#include "../data/Resources.h"
#include "EmulationStation.h"
extern bool WINDOWED; extern bool WINDOWED;
@ -35,6 +38,32 @@ namespace Renderer
return false; 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_RED_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
@ -48,8 +77,6 @@ namespace Renderer
return false; return false;
} }
SDL_WM_SetCaption("EmulationStation", NULL);
//usually display width/height are not specified, i.e. zero, which SDL automatically takes as "native resolution" //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 //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 //even though the system was already initialized

View file

@ -1,28 +1,31 @@
#include "platform.h" #include "platform.h"
#include <stdlib.h> #include <stdlib.h>
std::string getHomePath() std::string getHomePath()
{ {
std::string homePath; std::string homePath;
//this should give you something like "/home/YOUR_USERNAME" on Linux and "C:\Users\YOUR_USERNAME\" on Windows
const char * envHome = getenv("HOME"); //this should give you something like "/home/YOUR_USERNAME" on Linux and "C:\Users\YOUR_USERNAME\" on Windows
if(envHome != nullptr) { const char * envHome = getenv("HOME");
homePath = envHome; if(envHome != nullptr) {
} homePath = envHome;
}
#ifdef WIN32 #ifdef WIN32
//but does not seem to work for Windwos XP or Vista, so try something else //but does not seem to work for Windwos XP or Vista, so try something else
if (homePath.empty()) { if (homePath.empty()) {
const char * envDir = getenv("HOMEDRIVE"); const char * envDir = getenv("HOMEDRIVE");
const char * envPath = getenv("HOMEPATH"); const char * envPath = getenv("HOMEPATH");
if (envDir != nullptr && envPath != nullptr) { if (envDir != nullptr && envPath != nullptr) {
homePath = envDir; homePath = envDir;
homePath += envPath; homePath += envPath;
} }
} }
#else #else
if (homePath.empty()) { if (homePath.empty()) {
homePath = "~"; homePath = "~";
} }
#endif #endif
return homePath;
return homePath;
} }