aboutsummaryrefslogtreecommitdiff
path: root/backends/platform
diff options
context:
space:
mode:
authorJohannes Schickel2015-12-08 21:43:34 +0100
committerJohannes Schickel2015-12-08 21:43:34 +0100
commit33be7ef5dd1be112f24b56fc1ff1bf4fabc190ed (patch)
treede4e5d5b31ac1f60e8315cf1441143418b290f76 /backends/platform
parent457640a16257be20581080d6d682994cca94ba37 (diff)
parentae1be06db831e9480a060ef513aad6819be5cdd0 (diff)
downloadscummvm-rg350-33be7ef5dd1be112f24b56fc1ff1bf4fabc190ed.tar.gz
scummvm-rg350-33be7ef5dd1be112f24b56fc1ff1bf4fabc190ed.tar.bz2
scummvm-rg350-33be7ef5dd1be112f24b56fc1ff1bf4fabc190ed.zip
Merge branch 'rpi-sdl2'
This is a manual merge of pull request #632. The history fo the PR has been cleaned up.
Diffstat (limited to 'backends/platform')
-rw-r--r--backends/platform/sdl/module.mk6
-rw-r--r--backends/platform/sdl/posix/posix-main.cpp2
-rw-r--r--backends/platform/sdl/raspberrypi/README.RASPBERRYPI45
-rw-r--r--backends/platform/sdl/raspberrypi/raspberrypi-main.cpp51
-rw-r--r--backends/platform/sdl/raspberrypi/raspberrypi.cpp42
-rw-r--r--backends/platform/sdl/raspberrypi/raspberrypi.h35
6 files changed, 9 insertions, 172 deletions
diff --git a/backends/platform/sdl/module.mk b/backends/platform/sdl/module.mk
index 65d12dceed..74dd506d31 100644
--- a/backends/platform/sdl/module.mk
+++ b/backends/platform/sdl/module.mk
@@ -36,12 +36,6 @@ MODULE_OBJS += \
ps3/ps3.o
endif
-ifdef DISPMANX
-MODULE_OBJS += \
- raspberrypi/raspberrypi-main.o \
- raspberrypi/raspberrypi.o
-endif
-
# We don't use rules.mk but rather manually update OBJS and MODULE_DIRS.
MODULE_OBJS := $(addprefix $(MODULE)/, $(MODULE_OBJS))
OBJS := $(MODULE_OBJS) $(OBJS)
diff --git a/backends/platform/sdl/posix/posix-main.cpp b/backends/platform/sdl/posix/posix-main.cpp
index 492da70eeb..d07db11b0c 100644
--- a/backends/platform/sdl/posix/posix-main.cpp
+++ b/backends/platform/sdl/posix/posix-main.cpp
@@ -22,7 +22,7 @@
#include "common/scummsys.h"
-#if defined(POSIX) && !defined(MACOSX) && !defined(SAMSUNGTV) && !defined(MAEMO) && !defined(WEBOS) && !defined(LINUXMOTO) && !defined(GPH_DEVICE) && !defined(GP2X) && !defined(DINGUX) && !defined(OPENPANDORA) && !defined(PLAYSTATION3) && !defined(DISPMANX)
+#if defined(POSIX) && !defined(MACOSX) && !defined(SAMSUNGTV) && !defined(MAEMO) && !defined(WEBOS) && !defined(LINUXMOTO) && !defined(GPH_DEVICE) && !defined(GP2X) && !defined(DINGUX) && !defined(OPENPANDORA) && !defined(PLAYSTATION3)
#include "backends/platform/sdl/posix/posix.h"
#include "backends/plugins/sdl/sdl-provider.h"
diff --git a/backends/platform/sdl/raspberrypi/README.RASPBERRYPI b/backends/platform/sdl/raspberrypi/README.RASPBERRYPI
index f8d872b519..ab0e674c31 100644
--- a/backends/platform/sdl/raspberrypi/README.RASPBERRYPI
+++ b/backends/platform/sdl/raspberrypi/README.RASPBERRYPI
@@ -4,12 +4,9 @@ ScummVM-RASPBERRYPI README
Notes
============
-This version of ScummVM is specially tailored to use DispmanX, the native 2D
-API on the Raspberry Pi. The idea is that scaling and drawing on a double
-buffer with a non-blocking vsync wait is all done using the on-board VideoCore
-hardware, thus using only a small fraction of the CPU ScummVM uses when ran
-on a clunky, software-scaled and desynced X11 environment using the X11 API.
-Thus, running this version under an X11 session is not supported.
+This version of ScummVM uses SDL2 hardware accelerated graphics, be it
+plain SDL2 which in turn uses dispmanx/gles2 or by using gles1 via an
+SDL2-configured GLES1 context.
Requirements
============
@@ -67,40 +64,14 @@ works as in any other system ScummVM runs on.
Building from sources
==============================
-We have two options to build once we have the sources in our main GNU/Linux desktop
-class PC or in our Raspberry Pi:
+Recommended method is building by cross-compiling on a GNU/Linux X86-based computer.
+You can find concise instructions for this on the ScummVM wiki:
-1) Building on the Raspberry Pi itself, although possible, is an SLOW task for the
-little computer unless you use distributed gcc (or distcc for short).
-
-Local compilation would simply consist of the "standard" GNU/Linux building process:
-
-cd <sources_dir>
-
-./configure --enable-dispmanx -disable-debug --enable-release
---enable-optimizations --disable-mt32emu --disable-flac --disable-mad --disable-vorbis
---disable-tremor --disable-fluidsynth --disable-taskbar --disable-timidity --disable-alsa
---disable-scalers --disable-hq-scalers --disable-savegame-timestamp --disable-eventrecorder
-
-make
+http://wiki.scummvm.org/index.php/Compiling_ScummVM/RPI
-As you can see, we're manually disabling scalers because we prefer dispmanx for that, which
+The configure script is disabling scalers because we prefer dispmanx for that, which
makes scalers unnecessary on a CPU limited platform like this, timestamps because most people
doesn't have an RTC on the Raspberry Pi, and event recorder to save SD card write cycles.
-All these are automatically disabled when we crosscompile by passing "--host=raspberrypi",
-which is not the case.
-
-¡¡It will be an SLOW process, taking several hours to complete, unless you
-are running distcc against a fast compilation server!!
-
-2) If we want to build by cross-compiling on a GNU/Linux X86-based computer,
-we can find concise instructions for this can be found on the ScummVM wiki:
-
-http://wiki.scummvm.org/index.php/Compiling_ScummVM/RPI
-
-NOTE: Distcc is my preferred method as it does cross-compiling totally transparent
-(we build ON the Pi but the actual CPU-intensive compilation is made on an external
-server), but it involves building a custom gcc version on the compilation server and
-configuring a server and client in both the Raspberry Pi and the server.
+All these are automatically disabled when we crosscompile by passing "--host=raspberrypi".
Enjoy!
diff --git a/backends/platform/sdl/raspberrypi/raspberrypi-main.cpp b/backends/platform/sdl/raspberrypi/raspberrypi-main.cpp
deleted file mode 100644
index cddbcb7ec4..0000000000
--- a/backends/platform/sdl/raspberrypi/raspberrypi-main.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#include "backends/platform/sdl/raspberrypi/raspberrypi.h"
-#include "backends/plugins/sdl/sdl-provider.h"
-#include "common/scummsys.h"
-#include "base/main.h"
-
-#if defined(DISPMANX)
-int main(int argc, char* argv[]) {
-
- // Create our OSystem instance
- g_system = new OSystem_SDL_RaspberryPi();
- assert(g_system);
-
- // Pre initialize the backend
- ((OSystem_SDL_RaspberryPi *)g_system)->init();
-
-#ifdef DYNAMIC_MODULES
- PluginManager::instance().addPluginProvider(new SDLPluginProvider());
-#endif
-
- // Invoke the actual ScummVM main entry point:
- int res = scummvm_main(argc, argv);
-
- // Free OSystem
- delete (OSystem_SDL_RaspberryPi *)g_system;
-
- return res;
-}
-
-#endif
diff --git a/backends/platform/sdl/raspberrypi/raspberrypi.cpp b/backends/platform/sdl/raspberrypi/raspberrypi.cpp
deleted file mode 100644
index 206203d82e..0000000000
--- a/backends/platform/sdl/raspberrypi/raspberrypi.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#if defined(DISPMANX)
-
-#include "backends/platform/sdl/raspberrypi/raspberrypi.h"
-#include "backends/graphics/dispmanxsdl/dispmanxsdl-graphics.h"
-
-void OSystem_SDL_RaspberryPi::initBackend() {
- // Create the events manager
- if (_eventSource == 0)
- _eventSource = new SdlEventSource();
-
- // Create the graphics manager
- if (_graphicsManager == 0) {
- _graphicsManager = new DispmanXSdlGraphicsManager(_eventSource, _window);
- }
-
- // Call parent implementation of this method
- OSystem_POSIX::initBackend();
-}
-
-#endif
diff --git a/backends/platform/sdl/raspberrypi/raspberrypi.h b/backends/platform/sdl/raspberrypi/raspberrypi.h
deleted file mode 100644
index 45e2c505f6..0000000000
--- a/backends/platform/sdl/raspberrypi/raspberrypi.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef SDL_DISPMANX_COMMON_H
-#define SDL_DISPMANX_COMMON_H
-
-#if defined(DISPMANX)
-#include "backends/platform/sdl/posix/posix.h"
-
-class OSystem_SDL_RaspberryPi : public OSystem_POSIX {
-public:
- void initBackend();
-};
-
-#endif /* DISPMANX */
-#endif /* SDL_DISPMANX_COMMON_H */