1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-01-26 03:52:01 +02:00

- vcmi compiles with SDL2 on Linux, video player is disabled for now

This commit is contained in:
Ivan Savenko 2014-05-24 16:52:43 +03:00 committed by AlexVinS
parent 3db7fb4f63
commit 8eb661461c
7 changed files with 29 additions and 7 deletions

View File

@ -22,6 +22,7 @@ option(ENABLE_EDITOR "Enable compilation of map editor" OFF)
option(ENABLE_LAUNCHER "Enable compilation of launcher" ON) option(ENABLE_LAUNCHER "Enable compilation of launcher" ON)
option(ENABLE_TEST "Enable compilation of unit tests" OFF) option(ENABLE_TEST "Enable compilation of unit tests" OFF)
option(ENABLE_PCH "Enable compilation using precompiled headers" ON) option(ENABLE_PCH "Enable compilation using precompiled headers" ON)
option(ENABLE_SDL2 "Use SDL2 for compilation instead of SDL 1.2" ON)
############################################ ############################################
# Building section # # Building section #
@ -54,11 +55,27 @@ if (APPLE)
endif() endif()
find_package(Boost 1.48.0 COMPONENTS program_options filesystem system thread locale REQUIRED) find_package(Boost 1.48.0 COMPONENTS program_options filesystem system thread locale REQUIRED)
find_package(SDL REQUIRED)
find_package(SDL_image REQUIRED)
find_package(SDL_mixer REQUIRED)
find_package(SDL_ttf REQUIRED)
find_package(ZLIB REQUIRED) find_package(ZLIB REQUIRED)
if (ENABLE_SDL2)
include (FindPkgConfig)
pkg_search_module(SDL REQUIRED sdl2)
pkg_search_module(SDL_TTF REQUIRED SDL2_ttf)
pkg_search_module(SDL_IMAGE REQUIRED SDL2_image)
pkg_search_module(SDL_MIXER REQUIRED SDL2_mixer)
#This is weird - SDL defines singular variables while pkg_search defines plural
set(SDL_INCLUDE_DIR "${SDL_INCLUDE_DIRS}")
set(SDL_LIBRARY "${SDL_LIBRARIES}")
set(SDLTTF_LIBRARY "${SDL_TTF_LIBRARIES}")
set(SDLIMAGE_LIBRARY "${SDL_IMAGE_LIBRARIES}")
set(SDLMIXER_LIBRARY "${SDL_MIXER_LIBRARIES}")
else()
find_package(SDL REQUIRED)
find_package(SDL_image REQUIRED)
find_package(SDL_mixer REQUIRED)
find_package(SDL_ttf REQUIRED)
endif()
include(cotire) include(cotire)
if (ENABLE_EDITOR OR ENABLE_LAUNCHER) if (ENABLE_EDITOR OR ENABLE_LAUNCHER)

View File

@ -16,6 +16,8 @@
// Fixed width bool data type is important for serialization // Fixed width bool data type is important for serialization
static_assert(sizeof(bool) == 1, "Bool needs to be 1 byte in size."); static_assert(sizeof(bool) == 1, "Bool needs to be 1 byte in size.");
# define DISABLE_VIDEO
#if defined _M_X64 && defined _WIN32 //Win64 -> cannot load 32-bit DLLs for video handling #if defined _M_X64 && defined _WIN32 //Win64 -> cannot load 32-bit DLLs for video handling
# define DISABLE_VIDEO # define DISABLE_VIDEO
#endif #endif

View File

@ -390,7 +390,7 @@ int main(int argc, char** argv)
CCS = new CClientState; CCS = new CClientState;
CGI = new CGameInfo; //contains all global informations about game (texts, lodHandlers, map handler etc.) CGI = new CGameInfo; //contains all global informations about game (texts, lodHandlers, map handler etc.)
// Initialize video // Initialize video
#if DISABLE_VIDEO #ifdef DISABLE_VIDEO
CCS->videoh = new CEmptyVideoPlayer; CCS->videoh = new CEmptyVideoPlayer;
#else #else
if (!gNoGUI && !vm.count("disable-video")) if (!gNoGUI && !vm.count("disable-video"))

View File

@ -9,6 +9,7 @@
extern CGuiHandler GH; //global gui handler extern CGuiHandler GH; //global gui handler
#ifndef DISABLE_VIDEO
//reads events and returns true on key down //reads events and returns true on key down
static bool keyDown() static bool keyDown()
{ {
@ -20,6 +21,7 @@ static bool keyDown()
} }
return false; return false;
} }
#endif
#if defined(_WIN32) && (_MSC_VER < 1800 || !defined(USE_FFMPEG)) #if defined(_WIN32) && (_MSC_VER < 1800 || !defined(USE_FFMPEG))

View File

@ -221,7 +221,7 @@ public:
#include <SDL.h> #include <SDL.h>
#include <SDL_video.h> #include <SDL_video.h>
#if SDL_VERSION_ATLEAST(1,3,0) #if SDL_VERSION_ATLEAST(1,3,0) && !SDL_VERSION_ATLEAST(2,0,0)
#include <SDL_compat.h> #include <SDL_compat.h>
#endif #endif

View File

@ -285,7 +285,7 @@ void CGuiHandler::handleEvent(SDL_Event *sEvent)
#endif #endif
} }
#ifndef VCMI_SDL1 //SDL2x only events #ifndef VCMI_SDL1 //SDL2x only events
else if ((sEvent->type == SDL_MOUSEWHEEL)) else if (sEvent->type == SDL_MOUSEWHEEL)
{ {
std::list<CIntObject*> hlp = wheelInterested; std::list<CIntObject*> hlp = wheelInterested;
for(auto i=hlp.begin(); i != hlp.end() && current; i++) for(auto i=hlp.begin(); i != hlp.end() && current; i++)

View File

@ -222,6 +222,7 @@ std::vector<std::string> VCMIDirs::dataPaths() const
{ {
std::string dataDirsEnv = getenv("XDG_DATA_DIRS"); std::string dataDirsEnv = getenv("XDG_DATA_DIRS");
std::vector<std::string> dataDirs; std::vector<std::string> dataDirs;
std::cout << dataDirsEnv;
boost::split(dataDirs, dataDirsEnv, boost::is_any_of(":")); boost::split(dataDirs, dataDirsEnv, boost::is_any_of(":"));
for (auto & entry : boost::adaptors::reverse(dataDirs)) for (auto & entry : boost::adaptors::reverse(dataDirs))
ret.push_back(entry + "/vcmi"); ret.push_back(entry + "/vcmi");