mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-25 15:45:38 +00:00
Ported to Windows.
Added --windowed for desktop builds.
This commit is contained in:
parent
149c1bcbdd
commit
ffe573d1d6
20
EmulationStation_vs2010/EmulationStation_vs2010.sln
Normal file
20
EmulationStation_vs2010/EmulationStation_vs2010.sln
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||||
|
# Visual C++ Express 2010
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EmulationStation_vs2010", "EmulationStation_vs2010\EmulationStation_vs2010.vcxproj", "{0AB5C397-7B64-4AAD-92AD-E6B72FEDE8C3}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Win32 = Debug|Win32
|
||||||
|
Release|Win32 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{0AB5C397-7B64-4AAD-92AD-E6B72FEDE8C3}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{0AB5C397-7B64-4AAD-92AD-E6B72FEDE8C3}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{0AB5C397-7B64-4AAD-92AD-E6B72FEDE8C3}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{0AB5C397-7B64-4AAD-92AD-E6B72FEDE8C3}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -0,0 +1,126 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{0AB5C397-7B64-4AAD-92AD-E6B72FEDE8C3}</ProjectGuid>
|
||||||
|
<RootNamespace>EmulationStation_vs2010</RootNamespace>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="lib_paths.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="lib_paths.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="..\..\src\AudioManager.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\components\GuiAnimation.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\components\GuiBox.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\components\GuiDetectDevice.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\components\GuiFastSelect.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\components\GuiGameList.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\components\GuiImage.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\components\GuiInputConfig.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\components\GuiMenu.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\components\GuiTheme.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\FolderData.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\Font.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\GameData.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\Gui.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\InputConfig.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\InputManager.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\Log.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\main.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\MathExp.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\platform.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\pugiXML\pugixml.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\Renderer_draw_gl.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\Renderer_init.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\Sound.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\SystemData.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\Window.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\XMLReader.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="..\..\src\AudioManager.h" />
|
||||||
|
<ClInclude Include="..\..\src\components\GuiAnimation.h" />
|
||||||
|
<ClInclude Include="..\..\src\components\GuiBox.h" />
|
||||||
|
<ClInclude Include="..\..\src\components\GuiDetectDevice.h" />
|
||||||
|
<ClInclude Include="..\..\src\components\GuiFastSelect.h" />
|
||||||
|
<ClInclude Include="..\..\src\components\GuiGameList.h" />
|
||||||
|
<ClInclude Include="..\..\src\components\GuiImage.h" />
|
||||||
|
<ClInclude Include="..\..\src\components\GuiInputConfig.h" />
|
||||||
|
<ClInclude Include="..\..\src\components\GuiList.h" />
|
||||||
|
<ClInclude Include="..\..\src\components\GuiMenu.h" />
|
||||||
|
<ClInclude Include="..\..\src\components\GuiTheme.h" />
|
||||||
|
<ClInclude Include="..\..\src\FileData.h" />
|
||||||
|
<ClInclude Include="..\..\src\FolderData.h" />
|
||||||
|
<ClInclude Include="..\..\src\Font.h" />
|
||||||
|
<ClInclude Include="..\..\src\GameData.h" />
|
||||||
|
<ClInclude Include="..\..\src\Gui.h" />
|
||||||
|
<ClInclude Include="..\..\src\InputConfig.h" />
|
||||||
|
<ClInclude Include="..\..\src\InputManager.h" />
|
||||||
|
<ClInclude Include="..\..\src\Log.h" />
|
||||||
|
<ClInclude Include="..\..\src\MathExp.h" />
|
||||||
|
<ClInclude Include="..\..\src\platform.h" />
|
||||||
|
<ClInclude Include="..\..\src\pugiXML\pugiconfig.hpp" />
|
||||||
|
<ClInclude Include="..\..\src\pugiXML\pugixml.hpp" />
|
||||||
|
<ClInclude Include="..\..\src\Renderer.h" />
|
||||||
|
<ClInclude Include="..\..\src\Sound.h" />
|
||||||
|
<ClInclude Include="..\..\src\SystemData.h" />
|
||||||
|
<ClInclude Include="..\..\src\Window.h" />
|
||||||
|
<ClInclude Include="..\..\src\XMLReader.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,192 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="Source Files">
|
||||||
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Header Files">
|
||||||
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
|
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Resource Files">
|
||||||
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="components">
|
||||||
|
<UniqueIdentifier>{31a8e8d1-9795-42bf-99fd-500e57ac87d4}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="PugiXML">
|
||||||
|
<UniqueIdentifier>{bec1ca52-69f2-42eb-b134-57016057661a}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="..\..\src\AudioManager.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\FolderData.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\Font.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\GameData.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\Gui.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\InputConfig.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\InputManager.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\Log.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\main.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\MathExp.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\Renderer_draw_gl.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\Renderer_init.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\Sound.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\SystemData.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\Window.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\XMLReader.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\components\GuiAnimation.cpp">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\components\GuiTheme.cpp">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\components\GuiBox.cpp">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\components\GuiDetectDevice.cpp">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\components\GuiFastSelect.cpp">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\components\GuiGameList.cpp">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\components\GuiImage.cpp">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\components\GuiInputConfig.cpp">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\components\GuiMenu.cpp">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\pugiXML\pugixml.cpp">
|
||||||
|
<Filter>PugiXML</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\platform.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="..\..\src\AudioManager.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\FileData.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\FolderData.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\Font.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\GameData.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\Gui.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\InputConfig.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\InputManager.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\Log.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\MathExp.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\platform.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\Renderer.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\Sound.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\SystemData.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\Window.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\XMLReader.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\components\GuiTheme.h">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\components\GuiAnimation.h">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\components\GuiBox.h">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\components\GuiDetectDevice.h">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\components\GuiFastSelect.h">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\components\GuiGameList.h">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\components\GuiImage.h">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\components\GuiInputConfig.h">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\components\GuiList.h">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\components\GuiMenu.h">
|
||||||
|
<Filter>components</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\pugiXML\pugiconfig.hpp">
|
||||||
|
<Filter>PugiXML</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\pugiXML\pugixml.hpp">
|
||||||
|
<Filter>PugiXML</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ImportGroup Label="PropertySheets" />
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<IncludePath>C:\Games\VC++ Includes\freetype-2.3.5-1-bin\include\freetype2;C:\Games\VC++ Includes\SDL_mixer-1.2.12\include;C:\Games\VC++ Includes\FreeImage\Dist;C:\boost_1_53_0;C:\Games\VC++ Includes\SDL-1.2.15\include;$(IncludePath)</IncludePath>
|
||||||
|
<LibraryPath>C:\Games\VC++ Includes\freetype-2.3.5-1-bin\lib;C:\Games\VC++ Includes\SDL_mixer-1.2.12\lib\x86;C:\Games\VC++ Includes\FreeImage\Dist;C:\boost_1_53_0\stage\lib;C:\Games\VC++ Includes\SDL-1.2.15\lib\x86;$(LibraryPath)</LibraryPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup>
|
||||||
|
<ClCompile>
|
||||||
|
<PreprocessorDefinitions>_DESKTOP_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>SDLmain.lib;SDL.lib;FreeImage.lib;freetype.lib;opengl32.lib;SDL_mixer.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup />
|
||||||
|
</Project>
|
|
@ -2,7 +2,7 @@ CXX=g++
|
||||||
CXXFLAGS=-Wall -g -O2
|
CXXFLAGS=-Wall -g -O2
|
||||||
LDFLAGS=
|
LDFLAGS=
|
||||||
|
|
||||||
SRC_SOURCES=AudioManager.cpp Window.cpp InputConfig.cpp Log.cpp FolderData.cpp Font.cpp GameData.cpp Gui.cpp InputManager.cpp main.cpp MathExp.cpp Renderer_draw_gl.cpp Renderer_init.cpp Sound.cpp SystemData.cpp XMLReader.cpp components/GuiAnimation.cpp components/GuiBox.cpp components/GuiFastSelect.cpp components/GuiGameList.cpp components/GuiImage.cpp components/GuiMenu.cpp components/GuiTheme.cpp components/GuiInputConfig.cpp components/GuiDetectDevice.cpp pugiXML/pugixml.cpp
|
SRC_SOURCES=platform.cpp AudioManager.cpp Window.cpp InputConfig.cpp Log.cpp FolderData.cpp Font.cpp GameData.cpp Gui.cpp InputManager.cpp main.cpp MathExp.cpp Renderer_draw_gl.cpp Renderer_init.cpp Sound.cpp SystemData.cpp XMLReader.cpp components/GuiAnimation.cpp components/GuiBox.cpp components/GuiFastSelect.cpp components/GuiGameList.cpp components/GuiImage.cpp components/GuiMenu.cpp components/GuiTheme.cpp components/GuiInputConfig.cpp components/GuiDetectDevice.cpp pugiXML/pugixml.cpp
|
||||||
SOURCES=$(addprefix src/,$(SRC_SOURCES))
|
SOURCES=$(addprefix src/,$(SRC_SOURCES))
|
||||||
OBJECTS=$(SOURCES:.cpp=.o)
|
OBJECTS=$(SOURCES:.cpp=.o)
|
||||||
DEPS=$(SOURCES:.cpp=.d)
|
DEPS=$(SOURCES:.cpp=.d)
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
May 13, 2013
|
||||||
|
-Ported to Windows. You'll need to change the lib_paths property sheet Include and Library directories (I didn't include dependencies!).
|
||||||
|
-Added --windowed (only works for desktop builds).
|
||||||
|
|
||||||
April 13, 2013
|
April 13, 2013
|
||||||
-Finally merged the unstable branch, which means better input everything!
|
-Finally merged the unstable branch, which means better input everything!
|
||||||
-Can now use multiple joysticks.
|
-Can now use multiple joysticks.
|
||||||
|
|
17
src/Font.cpp
17
src/Font.cpp
|
@ -16,10 +16,11 @@ int Font::getSize() { return mSize; }
|
||||||
|
|
||||||
std::string Font::getDefaultPath()
|
std::string Font::getDefaultPath()
|
||||||
{
|
{
|
||||||
int fontCount = 3;
|
const int fontCount = 4;
|
||||||
std::string fonts[] = {"/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf",
|
std::string fonts[fontCount] = { "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf",
|
||||||
"/usr/share/fonts/TTF/DejaVuSerif.ttf",
|
"/usr/share/fonts/TTF/DejaVuSerif.ttf",
|
||||||
"/usr/share/fonts/dejavu/DejaVuSerif.ttf" };
|
"/usr/share/fonts/dejavu/DejaVuSerif.ttf",
|
||||||
|
"font.ttf" };
|
||||||
|
|
||||||
for(int i = 0; i < fontCount; i++)
|
for(int i = 0; i < fontCount; i++)
|
||||||
{
|
{
|
||||||
|
@ -226,7 +227,7 @@ void Font::drawText(std::string text, int startx, int starty, int color)
|
||||||
starty += mMaxGlyphHeight;
|
starty += mMaxGlyphHeight;
|
||||||
|
|
||||||
//padding (another 0.5% is added to the bottom through the sizeText function)
|
//padding (another 0.5% is added to the bottom through the sizeText function)
|
||||||
starty += mMaxGlyphHeight * 0.1;
|
starty += (int)(mMaxGlyphHeight * 0.1f);
|
||||||
|
|
||||||
|
|
||||||
int pointCount = text.length() * 2;
|
int pointCount = text.length() * 2;
|
||||||
|
@ -248,8 +249,8 @@ void Font::drawText(std::string text, int startx, int starty, int color)
|
||||||
int p = 0;
|
int p = 0;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
float x = startx;
|
float x = (float)startx;
|
||||||
float y = starty;
|
float y = (float)starty;
|
||||||
for(; p < pointCount; i++, p++)
|
for(; p < pointCount; i++, p++)
|
||||||
{
|
{
|
||||||
unsigned char letter = text[i];
|
unsigned char letter = text[i];
|
||||||
|
@ -321,10 +322,10 @@ void Font::sizeText(std::string text, int* w, int* h)
|
||||||
*w = cwidth;
|
*w = cwidth;
|
||||||
|
|
||||||
if(h != NULL)
|
if(h != NULL)
|
||||||
*h = mMaxGlyphHeight + mMaxGlyphHeight * 0.5;
|
*h = (int)(mMaxGlyphHeight + mMaxGlyphHeight * 0.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Font::getHeight()
|
int Font::getHeight()
|
||||||
{
|
{
|
||||||
return mMaxGlyphHeight * 1.5;
|
return (int)(mMaxGlyphHeight * 1.5f);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
#include "pugiXML/pugixml.hpp"
|
#include "pugiXML/pugixml.hpp"
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
|
#include "platform.h"
|
||||||
|
|
||||||
namespace fs = boost::filesystem;
|
namespace fs = boost::filesystem;
|
||||||
|
|
||||||
|
@ -189,7 +190,7 @@ void InputManager::loadConfig()
|
||||||
|
|
||||||
mNumPlayers = 0;
|
mNumPlayers = 0;
|
||||||
|
|
||||||
bool configuredDevice[mNumJoysticks];
|
bool* configuredDevice = new bool[mNumJoysticks];
|
||||||
for(int i = 0; i < mNumJoysticks; i++)
|
for(int i = 0; i < mNumJoysticks; i++)
|
||||||
{
|
{
|
||||||
mInputConfigs[i]->setPlayerNum(-1);
|
mInputConfigs[i]->setPlayerNum(-1);
|
||||||
|
@ -232,6 +233,8 @@ void InputManager::loadConfig()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete[] configuredDevice;
|
||||||
|
|
||||||
if(mNumPlayers == 0)
|
if(mNumPlayers == 0)
|
||||||
{
|
{
|
||||||
LOG(LogInfo) << "No input configs loaded. Loading default keyboard config.";
|
LOG(LogInfo) << "No input configs loaded. Loading default keyboard config.";
|
||||||
|
@ -285,7 +288,7 @@ void InputManager::writeConfig()
|
||||||
|
|
||||||
std::string InputManager::getConfigPath()
|
std::string InputManager::getConfigPath()
|
||||||
{
|
{
|
||||||
std::string path = getenv("HOME");
|
std::string path = getHomePath();
|
||||||
path += "/.emulationstation/es_input.cfg";
|
path += "/.emulationstation/es_input.cfg";
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include "platform.h"
|
||||||
|
|
||||||
LogLevel Log::reportingLevel = LogInfo;
|
LogLevel Log::reportingLevel = LogInfo;
|
||||||
FILE* Log::file = NULL; //fopen(getLogPath().c_str(), "w");
|
FILE* Log::file = NULL; //fopen(getLogPath().c_str(), "w");
|
||||||
|
@ -13,7 +14,7 @@ LogLevel Log::getReportingLevel()
|
||||||
|
|
||||||
std::string Log::getLogPath()
|
std::string Log::getLogPath()
|
||||||
{
|
{
|
||||||
std::string home = getenv("HOME");
|
std::string home = getHomePath();
|
||||||
return home + "/.emulationstation/es_log.txt";
|
return home + "/.emulationstation/es_log.txt";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include "Renderer.h"
|
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
|
#include "Renderer.h"
|
||||||
#include GLHEADER
|
#include GLHEADER
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "Font.h"
|
#include "Font.h"
|
||||||
|
@ -28,7 +28,7 @@ namespace Renderer {
|
||||||
|
|
||||||
void drawRect(int x, int y, int w, int h, unsigned int color)
|
void drawRect(int x, int y, int w, int h, unsigned int color)
|
||||||
{
|
{
|
||||||
GLfloat points[12];
|
GLint points[12];
|
||||||
|
|
||||||
points[0] = x; points [1] = y;
|
points[0] = x; points [1] = y;
|
||||||
points[2] = x; points[3] = y + h;
|
points[2] = x; points[3] = y + h;
|
||||||
|
@ -46,7 +46,7 @@ namespace Renderer {
|
||||||
glEnableClientState(GL_VERTEX_ARRAY);
|
glEnableClientState(GL_VERTEX_ARRAY);
|
||||||
glEnableClientState(GL_COLOR_ARRAY);
|
glEnableClientState(GL_COLOR_ARRAY);
|
||||||
|
|
||||||
glVertexPointer(2, GL_FLOAT, 0, points);
|
glVertexPointer(2, GL_INT, 0, points);
|
||||||
glColorPointer(4, GL_UNSIGNED_BYTE, 0, colors);
|
glColorPointer(4, GL_UNSIGNED_BYTE, 0, colors);
|
||||||
|
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 6);
|
glDrawArrays(GL_TRIANGLES, 0, 6);
|
||||||
|
@ -90,7 +90,7 @@ namespace Renderer {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
float fontSizes[] = {0.035, 0.045, 0.1};
|
float fontSizes[] = {0.035f, 0.045f, 0.1f};
|
||||||
for(unsigned int i = 0; i < 3; i++)
|
for(unsigned int i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
fonts[i] = new Font(fontPath, (unsigned int)(fontSizes[i] * getScreenHeight()));
|
fonts[i] = new Font(fontPath, (unsigned int)(fontSizes[i] * getScreenHeight()));
|
||||||
|
@ -119,10 +119,9 @@ namespace Renderer {
|
||||||
int w, h;
|
int w, h;
|
||||||
font->sizeText(text, &w, &h);
|
font->sizeText(text, &w, &h);
|
||||||
|
|
||||||
int x = (int)getScreenWidth() - w;
|
int x = getScreenWidth() - w;
|
||||||
x *= 0.5;
|
x = x / 2;
|
||||||
|
x += xOffset / 2;
|
||||||
x += xOffset * 0.5;
|
|
||||||
|
|
||||||
drawText(text, x, y, color, font);
|
drawText(text, x, y, color, font);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,20 @@
|
||||||
#include "Renderer.h"
|
#include "Renderer.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
|
|
||||||
|
#ifdef _WINDOWS_
|
||||||
|
#include <Windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include GLHEADER
|
#include GLHEADER
|
||||||
|
|
||||||
#include "Font.h"
|
#include "Font.h"
|
||||||
#include <SDL/SDL.h>
|
#include <SDL.h>
|
||||||
#include "InputManager.h"
|
#include "InputManager.h"
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
|
|
||||||
|
extern bool WINDOWED;
|
||||||
|
|
||||||
namespace Renderer
|
namespace Renderer
|
||||||
{
|
{
|
||||||
unsigned int display_width = 0;
|
unsigned int display_width = 0;
|
||||||
|
@ -32,7 +40,7 @@ namespace Renderer
|
||||||
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
|
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
|
||||||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
|
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
|
||||||
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
||||||
sdlScreen = SDL_SetVideoMode(display_width, display_height, 16, SDL_OPENGL | SDL_FULLSCREEN | SDL_DOUBLEBUF);
|
sdlScreen = SDL_SetVideoMode(display_width, display_height, 16, SDL_OPENGL | (WINDOWED ? 0 : SDL_FULLSCREEN) | SDL_DOUBLEBUF);
|
||||||
|
|
||||||
if(sdlScreen == NULL)
|
if(sdlScreen == NULL)
|
||||||
{
|
{
|
||||||
|
@ -40,6 +48,8 @@ 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
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <SDL/SDL_joystick.h>
|
#include <SDL_joystick.h>
|
||||||
#include "Renderer.h"
|
#include "Renderer.h"
|
||||||
#include "AudioManager.h"
|
#include "AudioManager.h"
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
|
@ -30,7 +30,7 @@ SystemData::SystemData(std::string name, std::string descName, std::string start
|
||||||
if(startPath[0] == '~')
|
if(startPath[0] == '~')
|
||||||
{
|
{
|
||||||
startPath.erase(0, 1);
|
startPath.erase(0, 1);
|
||||||
std::string home = getenv("HOME");
|
std::string home = getHomePath();
|
||||||
startPath.insert(0, home);
|
startPath.insert(0, home);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,7 +292,7 @@ void SystemData::deleteSystems()
|
||||||
|
|
||||||
std::string SystemData::getConfigPath()
|
std::string SystemData::getConfigPath()
|
||||||
{
|
{
|
||||||
std::string home = getenv("HOME");
|
std::string home = getHomePath();
|
||||||
if(home.empty())
|
if(home.empty())
|
||||||
{
|
{
|
||||||
LOG(LogError) << "$HOME environment variable empty or nonexistant!";
|
LOG(LogError) << "$HOME environment variable empty or nonexistant!";
|
||||||
|
@ -316,7 +316,7 @@ std::string SystemData::getGamelistPath(){
|
||||||
if(fs::exists(filePath))
|
if(fs::exists(filePath))
|
||||||
return filePath;
|
return filePath;
|
||||||
|
|
||||||
filePath = getenv("HOME");
|
filePath = getHomePath();
|
||||||
filePath += "/.emulationstation/"+ getName() + "/gamelist.xml";
|
filePath += "/.emulationstation/"+ getName() + "/gamelist.xml";
|
||||||
if(fs::exists(filePath))
|
if(fs::exists(filePath))
|
||||||
return filePath;
|
return filePath;
|
||||||
|
|
|
@ -33,15 +33,15 @@ void GuiAnimation::fadeOut(int time)
|
||||||
|
|
||||||
void GuiAnimation::update(int deltaTime)
|
void GuiAnimation::update(int deltaTime)
|
||||||
{
|
{
|
||||||
float mult = deltaTime * 0.05;
|
float mult = deltaTime * 0.05f;
|
||||||
|
|
||||||
if(mMoveX != 0 || mMoveY != 0)
|
if(mMoveX != 0 || mMoveY != 0)
|
||||||
{
|
{
|
||||||
int offsetx = (mMoveX > mMoveSpeed) ? mMoveSpeed : mMoveX;
|
int offsetx = (mMoveX > mMoveSpeed) ? mMoveSpeed : mMoveX;
|
||||||
int offsety = (mMoveY > mMoveSpeed) ? mMoveSpeed : mMoveY;
|
int offsety = (mMoveY > mMoveSpeed) ? mMoveSpeed : mMoveY;
|
||||||
|
|
||||||
offsetx *= mult;
|
offsetx = (int)(offsetx * mult);
|
||||||
offsety *= mult;
|
offsety = (int)(offsety * mult);
|
||||||
|
|
||||||
moveChildren(offsetx, offsety);
|
moveChildren(offsetx, offsety);
|
||||||
|
|
||||||
|
|
|
@ -83,17 +83,17 @@ void GuiDetectDevice::render()
|
||||||
stream >> playerString;
|
stream >> playerString;
|
||||||
|
|
||||||
Renderer::drawCenteredText("Press a button on the device for", 0, Renderer::getScreenHeight() / 3, 0x000000FF, font);
|
Renderer::drawCenteredText("Press a button on the device for", 0, Renderer::getScreenHeight() / 3, 0x000000FF, font);
|
||||||
Renderer::drawCenteredText("PLAYER " + playerString, 0, (int)(Renderer::getScreenHeight()*1.5) / 3, 0x333333FF, font);
|
Renderer::drawCenteredText("PLAYER " + playerString, 0, (int)(Renderer::getScreenHeight()*1.5f) / 3, 0x333333FF, font);
|
||||||
|
|
||||||
if(mWindow->getInputManager()->getNumPlayers() > 0)
|
if(mWindow->getInputManager()->getNumPlayers() > 0)
|
||||||
{
|
{
|
||||||
Renderer::drawCenteredText("(P1 - hold a button to finish)", 0, (int)(Renderer::getScreenHeight()*2) / 3, (mHoldingFinish ? 0x0000FFFF : 0x000066FF), font);
|
Renderer::drawCenteredText("(P1 - hold a button to finish)", 0, (Renderer::getScreenHeight()*2) / 3, (mHoldingFinish ? 0x0000FFFF : 0x000066FF), font);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(mWindow->getInputManager()->getNumJoysticks() == 0)
|
if(mWindow->getInputManager()->getNumJoysticks() == 0)
|
||||||
{
|
{
|
||||||
Renderer::drawCenteredText("No joysticks detected!", 0, Renderer::getScreenHeight()-(font->getHeight()*2)-10, 0xFF0000FF, font);
|
Renderer::drawCenteredText("No joysticks detected!", 0, Renderer::getScreenHeight() - (font->getHeight()*2)-10, 0xFF0000FF, font);
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderer::drawCenteredText("Press F4 to quit.", 0, Renderer::getScreenHeight()-font->getHeight() - 2 , 0x000000FF, font);
|
Renderer::drawCenteredText("Press F4 to quit.", 0, Renderer::getScreenHeight() - font->getHeight() - 2 , 0x000000FF, font);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ GuiFastSelect::GuiFastSelect(Window* window, GuiGameList* parent, GuiList<FileDa
|
||||||
mScrollOffset = 0;
|
mScrollOffset = 0;
|
||||||
|
|
||||||
unsigned int sw = Renderer::getScreenWidth(), sh = Renderer::getScreenHeight();
|
unsigned int sw = Renderer::getScreenWidth(), sh = Renderer::getScreenHeight();
|
||||||
mBox = new GuiBox(window, sw * 0.2, sh * 0.2, sw * 0.6, sh * 0.6);
|
mBox = new GuiBox(window, (int)(sw * 0.2f), (int)(sh * 0.2f), (int)(sw * 0.6f), (int)(sh * 0.6f));
|
||||||
mBox->setData(data);
|
mBox->setData(data);
|
||||||
|
|
||||||
mTextColor = textcolor;
|
mTextColor = textcolor;
|
||||||
|
@ -41,11 +41,11 @@ void GuiFastSelect::render()
|
||||||
unsigned int sw = Renderer::getScreenWidth(), sh = Renderer::getScreenHeight();
|
unsigned int sw = Renderer::getScreenWidth(), sh = Renderer::getScreenHeight();
|
||||||
|
|
||||||
if(!mBox->hasBackground())
|
if(!mBox->hasBackground())
|
||||||
Renderer::drawRect(sw * 0.2, sh * 0.2, sw * 0.6, sh * 0.6, 0x000FF0FF);
|
Renderer::drawRect((int)(sw * 0.2f), (int)(sh * 0.2f), (int)(sw * 0.6f), (int)(sh * 0.6f), 0x000FF0FF);
|
||||||
|
|
||||||
mBox->render();
|
mBox->render();
|
||||||
|
|
||||||
Renderer::drawCenteredText(LETTERS.substr(mLetterID, 1), 0, sh * 0.5 - (mFont->getHeight() * 0.5), mTextColor, mFont);
|
Renderer::drawCenteredText(LETTERS.substr(mLetterID, 1), 0, (int)(sh * 0.5f - (mFont->getHeight() * 0.5f)), mTextColor, mFont);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiFastSelect::input(InputConfig* config, Input input)
|
void GuiFastSelect::input(InputConfig* config, Input input)
|
||||||
|
|
|
@ -17,9 +17,9 @@ GuiGameList::GuiGameList(Window* window, bool useDetail) : Gui(window)
|
||||||
//Those with smaller displays may prefer the older view.
|
//Those with smaller displays may prefer the older view.
|
||||||
if(mDetailed)
|
if(mDetailed)
|
||||||
{
|
{
|
||||||
mList = new GuiList<FileData*>(mWindow, Renderer::getScreenWidth() * mTheme->getFloat("listOffsetX"), Renderer::getDefaultFont(Renderer::LARGE)->getHeight() + 2, Renderer::getDefaultFont(Renderer::MEDIUM));
|
mList = new GuiList<FileData*>(mWindow, (int)(Renderer::getScreenWidth() * mTheme->getFloat("listOffsetX")), Renderer::getDefaultFont(Renderer::LARGE)->getHeight() + 2, Renderer::getDefaultFont(Renderer::MEDIUM));
|
||||||
|
|
||||||
mScreenshot = new GuiImage(mWindow, Renderer::getScreenWidth() * mTheme->getFloat("gameImageOffsetX"), Renderer::getScreenHeight() * mTheme->getFloat("gameImageOffsetY"), "", mTheme->getFloat("gameImageWidth"), mTheme->getFloat("gameImageHeight"), false);
|
mScreenshot = new GuiImage(mWindow, (int)(Renderer::getScreenWidth() * mTheme->getFloat("gameImageOffsetX")), (int)(Renderer::getScreenHeight() * mTheme->getFloat("gameImageOffsetY")), "", (unsigned int)mTheme->getFloat("gameImageWidth"), (unsigned int)mTheme->getFloat("gameImageHeight"), false);
|
||||||
mScreenshot->setOrigin(mTheme->getFloat("gameImageOriginX"), mTheme->getFloat("gameImageOriginY"));
|
mScreenshot->setOrigin(mTheme->getFloat("gameImageOriginX"), mTheme->getFloat("gameImageOriginY"));
|
||||||
|
|
||||||
mImageAnimation = new GuiAnimation();
|
mImageAnimation = new GuiAnimation();
|
||||||
|
@ -85,7 +85,7 @@ void GuiGameList::render()
|
||||||
{
|
{
|
||||||
//divider
|
//divider
|
||||||
if(!mTheme->getBool("hideDividers"))
|
if(!mTheme->getBool("hideDividers"))
|
||||||
Renderer::drawRect(Renderer::getScreenWidth() * mTheme->getFloat("listOffsetX") - 4, Renderer::getDefaultFont(Renderer::LARGE)->getHeight() + 2, 8, Renderer::getScreenHeight(), 0x0000FFFF);
|
Renderer::drawRect((int)(Renderer::getScreenWidth() * mTheme->getFloat("listOffsetX")) - 4, Renderer::getDefaultFont(Renderer::LARGE)->getHeight() + 2, 8, Renderer::getScreenHeight(), 0x0000FFFF);
|
||||||
|
|
||||||
//if we're not scrolling and we have selected a non-folder
|
//if we're not scrolling and we have selected a non-folder
|
||||||
if(!mList->isScrolling() && mList->getSelectedObject() && !mList->getSelectedObject()->isFolder())
|
if(!mList->isScrolling() && mList->getSelectedObject() && !mList->getSelectedObject()->isFolder())
|
||||||
|
@ -94,7 +94,7 @@ void GuiGameList::render()
|
||||||
|
|
||||||
std::string desc = game->getDescription();
|
std::string desc = game->getDescription();
|
||||||
if(!desc.empty())
|
if(!desc.empty())
|
||||||
Renderer::drawWrappedText(desc, Renderer::getScreenWidth() * 0.03, mScreenshot->getOffsetY() + mScreenshot->getHeight() + 12, Renderer::getScreenWidth() * (mTheme->getFloat("listOffsetX") - 0.03), mTheme->getColor("description"), mTheme->getDescriptionFont());
|
Renderer::drawWrappedText(desc, (int)(Renderer::getScreenWidth() * 0.03), mScreenshot->getOffsetY() + mScreenshot->getHeight() + 12, (int)(Renderer::getScreenWidth() * (mTheme->getFloat("listOffsetX") - 0.03)), mTheme->getColor("description"), mTheme->getDescriptionFont());
|
||||||
}
|
}
|
||||||
|
|
||||||
mScreenshot->render();
|
mScreenshot->render();
|
||||||
|
@ -200,7 +200,7 @@ std::string GuiGameList::getThemeFile()
|
||||||
{
|
{
|
||||||
std::string themePath;
|
std::string themePath;
|
||||||
|
|
||||||
themePath = getenv("HOME");
|
themePath = getHomePath();
|
||||||
themePath += "/.emulationstation/" + mSystem->getName() + "/theme.xml";
|
themePath += "/.emulationstation/" + mSystem->getName() + "/theme.xml";
|
||||||
if(boost::filesystem::exists(themePath))
|
if(boost::filesystem::exists(themePath))
|
||||||
return themePath;
|
return themePath;
|
||||||
|
@ -209,7 +209,7 @@ std::string GuiGameList::getThemeFile()
|
||||||
if(boost::filesystem::exists(themePath))
|
if(boost::filesystem::exists(themePath))
|
||||||
return themePath;
|
return themePath;
|
||||||
|
|
||||||
themePath = getenv("HOME");
|
themePath = getHomePath();
|
||||||
themePath += "/.emulationstation/es_theme.xml";
|
themePath += "/.emulationstation/es_theme.xml";
|
||||||
if(boost::filesystem::exists(themePath))
|
if(boost::filesystem::exists(themePath))
|
||||||
return themePath;
|
return themePath;
|
||||||
|
@ -235,13 +235,13 @@ void GuiGameList::updateTheme()
|
||||||
{
|
{
|
||||||
mList->setCentered(mTheme->getBool("listCentered"));
|
mList->setCentered(mTheme->getBool("listCentered"));
|
||||||
|
|
||||||
mList->setOffsetX(mTheme->getFloat("listOffsetX") * Renderer::getScreenWidth());
|
mList->setOffsetX((int)(mTheme->getFloat("listOffsetX") * Renderer::getScreenWidth()));
|
||||||
mList->setTextOffsetX(mTheme->getFloat("listTextOffsetX") * Renderer::getScreenWidth());
|
mList->setTextOffsetX((int)(mTheme->getFloat("listTextOffsetX") * Renderer::getScreenWidth()));
|
||||||
|
|
||||||
mScreenshot->setOffsetX(mTheme->getFloat("gameImageOffsetX") * Renderer::getScreenWidth());
|
mScreenshot->setOffsetX((int)(mTheme->getFloat("gameImageOffsetX") * Renderer::getScreenWidth()));
|
||||||
mScreenshot->setOffsetY(mTheme->getFloat("gameImageOffsetY") * Renderer::getScreenHeight());
|
mScreenshot->setOffsetY((int)(mTheme->getFloat("gameImageOffsetY") * Renderer::getScreenHeight()));
|
||||||
mScreenshot->setOrigin(mTheme->getFloat("gameImageOriginX"), mTheme->getFloat("gameImageOriginY"));
|
mScreenshot->setOrigin(mTheme->getFloat("gameImageOriginX"), mTheme->getFloat("gameImageOriginY"));
|
||||||
mScreenshot->setResize(mTheme->getFloat("gameImageWidth"), mTheme->getFloat("gameImageHeight"), false);
|
mScreenshot->setResize((int)mTheme->getFloat("gameImageWidth"), (int)mTheme->getFloat("gameImageHeight"), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,7 +252,7 @@ void GuiGameList::updateDetailData()
|
||||||
|
|
||||||
if(mList->getSelectedObject() && !mList->getSelectedObject()->isFolder())
|
if(mList->getSelectedObject() && !mList->getSelectedObject()->isFolder())
|
||||||
{
|
{
|
||||||
mScreenshot->setOffset((mTheme->getFloat("gameImageOffsetX") - 0.05) * Renderer::getScreenWidth(), mTheme->getFloat("gameImageOffsetY") * Renderer::getScreenHeight());
|
mScreenshot->setOffset((int)((mTheme->getFloat("gameImageOffsetX") - 0.05) * Renderer::getScreenWidth()), (int)(mTheme->getFloat("gameImageOffsetY") * Renderer::getScreenHeight()));
|
||||||
|
|
||||||
if(((GameData*)mList->getSelectedObject())->getImagePath().empty())
|
if(((GameData*)mList->getSelectedObject())->getImagePath().empty())
|
||||||
mScreenshot->setImage(mTheme->getString("imageNotFoundPath"));
|
mScreenshot->setImage(mTheme->getString("imageNotFoundPath"));
|
||||||
|
|
|
@ -200,9 +200,9 @@ void GuiImage::resize()
|
||||||
resizeScaleX = resizeScaleY;
|
resizeScaleX = resizeScaleY;
|
||||||
|
|
||||||
if(resizeScaleX)
|
if(resizeScaleX)
|
||||||
mDrawWidth *= resizeScaleX;
|
mDrawWidth = (int)(mDrawWidth * resizeScaleX);
|
||||||
if(resizeScaleY)
|
if(resizeScaleY)
|
||||||
mDrawHeight *= resizeScaleY;
|
mDrawHeight = (int)(mDrawHeight * resizeScaleY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
#ifndef _GUIIMAGE_H_
|
#ifndef _GUIIMAGE_H_
|
||||||
#define _GUIIMAGE_H_
|
#define _GUIIMAGE_H_
|
||||||
|
|
||||||
|
#include "../platform.h"
|
||||||
|
#include GLHEADER
|
||||||
|
|
||||||
#include "../Gui.h"
|
#include "../Gui.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <FreeImage.h>
|
#include <FreeImage.h>
|
||||||
#include "../platform.h"
|
|
||||||
#include GLHEADER
|
|
||||||
|
|
||||||
class GuiImage : public Gui
|
class GuiImage : public Gui
|
||||||
{
|
{
|
||||||
|
|
|
@ -42,7 +42,7 @@ void GuiList<listType>::render()
|
||||||
|
|
||||||
if((int)mRowVector.size() >= screenCount)
|
if((int)mRowVector.size() >= screenCount)
|
||||||
{
|
{
|
||||||
startEntry = mSelection - (screenCount * 0.5);
|
startEntry = mSelection - (int)(screenCount * 0.5);
|
||||||
if(startEntry < 0)
|
if(startEntry < 0)
|
||||||
startEntry = 0;
|
startEntry = 0;
|
||||||
if(startEntry >= (int)mRowVector.size() - screenCount)
|
if(startEntry >= (int)mRowVector.size() - screenCount)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "GuiMenu.h"
|
#include "GuiMenu.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <SDL/SDL.h>
|
#include <SDL.h>
|
||||||
#include "../Log.h"
|
#include "../Log.h"
|
||||||
#include "../SystemData.h"
|
#include "../SystemData.h"
|
||||||
#include "GuiGameList.h"
|
#include "GuiGameList.h"
|
||||||
|
@ -84,6 +84,6 @@ void GuiMenu::update(int deltaTime)
|
||||||
|
|
||||||
void GuiMenu::render()
|
void GuiMenu::render()
|
||||||
{
|
{
|
||||||
Renderer::drawRect(Renderer::getScreenWidth() * 0.25, 0, Renderer::getScreenWidth() * 0.5, Renderer::getScreenHeight(), 0x999999);
|
Renderer::drawRect(Renderer::getScreenWidth() / 4, 0, Renderer::getScreenWidth() / 2, Renderer::getScreenHeight(), 0x999999);
|
||||||
mList->render();
|
mList->render();
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,7 +97,7 @@ void GuiTheme::setDefaults()
|
||||||
mBoolMap["listCentered"] = true;
|
mBoolMap["listCentered"] = true;
|
||||||
|
|
||||||
mFloatMap["listOffsetX"] = 0.5;
|
mFloatMap["listOffsetX"] = 0.5;
|
||||||
mFloatMap["listTextOffsetX"] = 0.005;
|
mFloatMap["listTextOffsetX"] = 0.005f;
|
||||||
mFloatMap["gameImageOriginX"] = 0.5;
|
mFloatMap["gameImageOriginX"] = 0.5;
|
||||||
mFloatMap["gameImageOriginY"] = 0;
|
mFloatMap["gameImageOriginY"] = 0;
|
||||||
mFloatMap["gameImageOffsetX"] = mFloatMap["listOffsetX"] / 2;
|
mFloatMap["gameImageOffsetX"] = mFloatMap["listOffsetX"] / 2;
|
||||||
|
@ -204,16 +204,16 @@ void GuiTheme::readXML(std::string path)
|
||||||
mColorMap["description"] = resolveColor(root.child("descColor").text().get(), mColorMap["description"]);
|
mColorMap["description"] = resolveColor(root.child("descColor").text().get(), mColorMap["description"]);
|
||||||
mColorMap["fastSelect"] = resolveColor(root.child("fastSelectColor").text().get(), mColorMap["fastSelect"]);
|
mColorMap["fastSelect"] = resolveColor(root.child("fastSelectColor").text().get(), mColorMap["fastSelect"]);
|
||||||
|
|
||||||
mBoolMap["hideHeader"] = root.child("hideHeader");
|
mBoolMap["hideHeader"] = root.child("hideHeader") != 0;
|
||||||
mBoolMap["hideDividers"] = root.child("hideDividers");
|
mBoolMap["hideDividers"] = root.child("hideDividers") != 0;
|
||||||
|
|
||||||
//GuiBox theming data
|
//GuiBox theming data
|
||||||
mBoxData.backgroundPath = expandPath(root.child("boxBackground").text().get());
|
mBoxData.backgroundPath = expandPath(root.child("boxBackground").text().get());
|
||||||
mBoxData.backgroundTiled = root.child("boxBackgroundTiled");
|
mBoxData.backgroundTiled = root.child("boxBackgroundTiled") != 0;
|
||||||
mBoxData.horizontalPath = expandPath(root.child("boxHorizontal").text().get());
|
mBoxData.horizontalPath = expandPath(root.child("boxHorizontal").text().get());
|
||||||
mBoxData.horizontalTiled = root.child("boxHorizontalTiled");
|
mBoxData.horizontalTiled = root.child("boxHorizontalTiled") != 0;
|
||||||
mBoxData.verticalPath = expandPath(root.child("boxVertical").text().get());
|
mBoxData.verticalPath = expandPath(root.child("boxVertical").text().get());
|
||||||
mBoxData.verticalTiled = root.child("boxVerticalTiled");
|
mBoxData.verticalTiled = root.child("boxVerticalTiled") != 0;
|
||||||
mBoxData.cornerPath = expandPath(root.child("boxCorner").text().get());
|
mBoxData.cornerPath = expandPath(root.child("boxCorner").text().get());
|
||||||
|
|
||||||
//list stuff
|
//list stuff
|
||||||
|
@ -288,7 +288,7 @@ Gui* GuiTheme::createElement(pugi::xml_node data, Gui* parent)
|
||||||
std::string dim = data.child("dim").text().get();
|
std::string dim = data.child("dim").text().get();
|
||||||
std::string origin = data.child("origin").text().get();
|
std::string origin = data.child("origin").text().get();
|
||||||
|
|
||||||
bool tiled = data.child("tiled");
|
bool tiled = data.child("tiled") != 0;
|
||||||
|
|
||||||
//split position and dimension information
|
//split position and dimension information
|
||||||
std::string posX, posY;
|
std::string posX, posY;
|
||||||
|
@ -301,10 +301,10 @@ Gui* GuiTheme::createElement(pugi::xml_node data, Gui* parent)
|
||||||
splitString(origin, ' ', &originX, &originY);
|
splitString(origin, ' ', &originX, &originY);
|
||||||
|
|
||||||
//resolve to pixels from percentages/variables
|
//resolve to pixels from percentages/variables
|
||||||
int x = resolveExp(posX) * Renderer::getScreenWidth();
|
int x = (int)(resolveExp(posX) * Renderer::getScreenWidth());
|
||||||
int y = resolveExp(posY) * Renderer::getScreenHeight();
|
int y = (int)(resolveExp(posY) * Renderer::getScreenHeight());
|
||||||
int w = resolveExp(dimW) * Renderer::getScreenWidth();
|
int w = (int)(resolveExp(dimW) * Renderer::getScreenWidth());
|
||||||
int h = resolveExp(dimH) * Renderer::getScreenHeight();
|
int h = (int)(resolveExp(dimH) * Renderer::getScreenHeight());
|
||||||
|
|
||||||
float ox = strToFloat(originX);
|
float ox = strToFloat(originX);
|
||||||
float oy = strToFloat(originY);
|
float oy = strToFloat(originY);
|
||||||
|
@ -327,7 +327,7 @@ Gui* GuiTheme::createElement(pugi::xml_node data, Gui* parent)
|
||||||
std::string GuiTheme::expandPath(std::string path)
|
std::string GuiTheme::expandPath(std::string path)
|
||||||
{
|
{
|
||||||
if(path[0] == '~')
|
if(path[0] == '~')
|
||||||
path = getenv("HOME") + path.substr(1, path.length() - 1);
|
path = getHomePath() + path.substr(1, path.length() - 1);
|
||||||
else if(path[0] == '.')
|
else if(path[0] == '.')
|
||||||
path = boost::filesystem::path(mPath).parent_path().string() + path.substr(1, path.length() - 1);
|
path = boost::filesystem::path(mPath).parent_path().string() + path.substr(1, path.length() - 1);
|
||||||
|
|
||||||
|
@ -344,7 +344,7 @@ float GuiTheme::resolveExp(std::string str, float defaultVal)
|
||||||
exp.setExpression(str);
|
exp.setExpression(str);
|
||||||
|
|
||||||
//set variables
|
//set variables
|
||||||
exp.setVariable("headerHeight", Renderer::getDefaultFont(Renderer::LARGE)->getHeight() / Renderer::getScreenHeight());
|
exp.setVariable("headerHeight", (float)(Renderer::getDefaultFont(Renderer::LARGE)->getHeight() / Renderer::getScreenHeight()));
|
||||||
exp.setVariable("infoWidth", mFloatMap["listOffsetX"]);
|
exp.setVariable("infoWidth", mFloatMap["listOffsetX"]);
|
||||||
|
|
||||||
return exp.eval();
|
return exp.eval();
|
||||||
|
|
19
src/main.cpp
19
src/main.cpp
|
@ -1,12 +1,12 @@
|
||||||
//EmulationStation, a graphical front-end for ROM browsing. Created by Alec "Aloshi" Lofquist.
|
//EmulationStation, a graphical front-end for ROM browsing. Created by Alec "Aloshi" Lofquist.
|
||||||
|
|
||||||
|
#include <SDL.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "Renderer.h"
|
#include "Renderer.h"
|
||||||
#include "components/GuiGameList.h"
|
#include "components/GuiGameList.h"
|
||||||
#include "SystemData.h"
|
#include "SystemData.h"
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
#include "components/GuiDetectDevice.h"
|
#include "components/GuiDetectDevice.h"
|
||||||
#include <SDL.h>
|
|
||||||
#include "AudioManager.h"
|
#include "AudioManager.h"
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
|
@ -24,6 +24,7 @@ bool IGNOREGAMELIST = false;
|
||||||
bool DRAWFRAMERATE = false;
|
bool DRAWFRAMERATE = false;
|
||||||
bool DONTSHOWEXIT = false;
|
bool DONTSHOWEXIT = false;
|
||||||
bool DEBUG = false;
|
bool DEBUG = false;
|
||||||
|
bool WINDOWED = false;
|
||||||
unsigned int DIMTIME = 30*1000;
|
unsigned int DIMTIME = 30*1000;
|
||||||
|
|
||||||
namespace fs = boost::filesystem;
|
namespace fs = boost::filesystem;
|
||||||
|
@ -39,11 +40,11 @@ int main(int argc, char* argv[])
|
||||||
if(strcmp(argv[i], "-w") == 0)
|
if(strcmp(argv[i], "-w") == 0)
|
||||||
{
|
{
|
||||||
width = atoi(argv[i + 1]);
|
width = atoi(argv[i + 1]);
|
||||||
i++;
|
i++; //skip the argument value
|
||||||
}else if(strcmp(argv[i], "-h") == 0)
|
}else if(strcmp(argv[i], "-h") == 0)
|
||||||
{
|
{
|
||||||
height = atoi(argv[i + 1]);
|
height = atoi(argv[i + 1]);
|
||||||
i++;
|
i++; //skip the argument value
|
||||||
}else if(strcmp(argv[i], "--gamelist-only") == 0)
|
}else if(strcmp(argv[i], "--gamelist-only") == 0)
|
||||||
{
|
{
|
||||||
PARSEGAMELISTONLY = true;
|
PARSEGAMELISTONLY = true;
|
||||||
|
@ -63,7 +64,10 @@ int main(int argc, char* argv[])
|
||||||
}else if(strcmp(argv[i], "--dimtime") == 0)
|
}else if(strcmp(argv[i], "--dimtime") == 0)
|
||||||
{
|
{
|
||||||
DIMTIME = atoi(argv[i + 1]) * 1000;
|
DIMTIME = atoi(argv[i + 1]) * 1000;
|
||||||
i++;
|
i++; //skip the argument value
|
||||||
|
}else if(strcmp(argv[i], "--windowed") == 0)
|
||||||
|
{
|
||||||
|
WINDOWED = true;
|
||||||
}else if(strcmp(argv[i], "--help") == 0)
|
}else if(strcmp(argv[i], "--help") == 0)
|
||||||
{
|
{
|
||||||
std::cout << "EmulationStation, a graphical front-end for ROM browsing.\n";
|
std::cout << "EmulationStation, a graphical front-end for ROM browsing.\n";
|
||||||
|
@ -76,6 +80,11 @@ int main(int argc, char* argv[])
|
||||||
std::cout << "--no-exit don't show the exit option in the menu\n";
|
std::cout << "--no-exit don't show the exit option in the menu\n";
|
||||||
std::cout << "--debug even more logging\n";
|
std::cout << "--debug even more logging\n";
|
||||||
std::cout << "--dimtime [seconds] time to wait before dimming the screen (default 30, use 0 for never)\n";
|
std::cout << "--dimtime [seconds] time to wait before dimming the screen (default 30, use 0 for never)\n";
|
||||||
|
|
||||||
|
#ifdef _DESKTOP_
|
||||||
|
std::cout << "--windowed not fullscreen\n";
|
||||||
|
#endif
|
||||||
|
|
||||||
std::cout << "--help summon a sentient, angry tuba\n\n";
|
std::cout << "--help summon a sentient, angry tuba\n\n";
|
||||||
std::cout << "More information available in README.md.\n";
|
std::cout << "More information available in README.md.\n";
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -90,7 +99,7 @@ int main(int argc, char* argv[])
|
||||||
bool running = true;
|
bool running = true;
|
||||||
|
|
||||||
//make sure the config directory exists
|
//make sure the config directory exists
|
||||||
std::string home = getenv("HOME");
|
std::string home = getHomePath();
|
||||||
std::string configDir = home + "/.emulationstation";
|
std::string configDir = home + "/.emulationstation";
|
||||||
if(!fs::exists(configDir))
|
if(!fs::exists(configDir))
|
||||||
{
|
{
|
||||||
|
|
14
src/platform.cpp
Normal file
14
src/platform.cpp
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include "platform.h"
|
||||||
|
|
||||||
|
std::string getHomePath()
|
||||||
|
{
|
||||||
|
#ifdef _WIN32
|
||||||
|
return "C:\\";
|
||||||
|
#else
|
||||||
|
const char* home = getenv("HOME");
|
||||||
|
if(home == NULL)
|
||||||
|
return "";
|
||||||
|
else
|
||||||
|
return home;
|
||||||
|
#endif
|
||||||
|
}
|
|
@ -2,12 +2,20 @@
|
||||||
//#define _RPI_
|
//#define _RPI_
|
||||||
//#define _DESKTOP_
|
//#define _DESKTOP_
|
||||||
|
|
||||||
|
|
||||||
#ifdef _RPI_
|
#ifdef _RPI_
|
||||||
#define GLHEADER <GLES/gl.h>
|
#define GLHEADER <GLES/gl.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef _DESKTOP_
|
#ifdef _DESKTOP_
|
||||||
#define GLHEADER <GL/gl.h>
|
//why the hell this naming inconsistency exists is well beyond me
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define sleep Sleep
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define GLHEADER <SDL_opengl.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
std::string getHomePath();
|
Loading…
Reference in a new issue