Commit graph

248 commits

Author SHA1 Message Date
Cameron Cawley
b3dc3832f7 SDL: Remove outdated comment 2019-03-25 23:36:33 +01:00
Thierry Crozat
4e24ede18d SDL: Fix crash when calling OSystem::quit() and OSystem::fatalError() 2018-11-26 22:42:30 +00:00
Cameron Cawley
ada05fd726 WIN32: Move Windows-specific implementation of logMessage out of OSystem_SDL 2018-06-03 17:43:30 +01:00
Cameron Cawley
e1c83f8e87 WIN32: Move Windows-specific implementation of getSystemLanguage out of OSystem_SDL 2018-06-03 17:43:30 +01:00
Thierry Crozat
0dae57ab2f SDL: Handle encoding conversion for clipboard text 2018-04-29 21:47:10 +01:00
Thierry Crozat
3fe0e3c38e OSYSTEM: Add API to copy text to clipboard
This has also been implemented for the SDL2 and macOS backends.
2018-04-29 21:47:10 +01:00
Bastien Bouclet
a86eae6323 SDL: Only enable joystick related features when joysticks are enabled
Fixes #9714.
2017-12-26 21:11:05 +01:00
Bastien Bouclet
ee4ff8ca08 SDL: Cleanup joystick deadzone handling 2017-12-26 21:11:04 +01:00
Bastien Bouclet
1fb748e974 SDL: Move the non analog joystick code to the Symbian port
Symbian was the only user of that code.
2017-12-26 21:11:04 +01:00
Thierry Crozat
2d88a30803 Revert "SDL: Use RLE acceleration for SDL2 transparent surfaces"
This reverts commit 6b4195a542.
There seemed to be no clear benefit in using RLE for transparent
surfaces, and there were a few reports that it might cause crashes
on Windows. So to be on the safe side I prefer to revert this
commit.
2017-11-26 01:56:48 +00:00
Bastien Bouclet
8fc70ce37f SDL: Improve handling of SDL2 keyboard repeat events
- Flag them as repeat events
- Disable ScummVM's own repeat event generation

This fixes keyboard repeat events not being flagged as such with SDL2,
and complies with the user's operating system preferences regarding key
repeat timings.
2017-11-19 16:12:50 +01:00
Thierry Crozat
6b4195a542 SDL: Use RLE acceleration for SDL2 transparent surfaces
We were already doing it for SDL1.2, but with SDL2 the SDL_RLEACCEL
is not passed to SDL and instead we need to call SDL_SetSurfaceRLE.
2017-11-11 00:18:57 +00:00
Colin Snover
ebe6c40a6a SDL: Do not reset window size when engines update rendering surface
This change allows:

* Engines to update their target rendering surface/size and pixel
  format with the backend multiple times during gameplay;
* Users to resize the ScummVM window without having it reset
  size/position every time an engine updates its target surface
  format;
* Conversions/scaling to continue to run efficiently in hardware,
  instead of requiring engines to pick their maximum possible
  output format once and upscale inefficiently in software;
* The window to reset size once when an engine calls to set its
  initial output size, and to reset again once ScummVM returns to
  the launcher.

This is relevant for at least SCI32 and DreamWeb engines, which
perform graphics mode switches during games.
2017-10-07 12:30:29 -05:00
Frank Richter
0f93962ef4 Windows: Use GetUserDefaultUILanguage() instead of GetThreadLocale().
The thread locale concerns display options (e.g. date formatting) not
the display language. There are typically, but not necessarily the same,
as Windows allows them to be configured separately.
2017-08-01 08:55:48 +02:00
Thierry Crozat
e96c057c3d SDL: Allow specifying the screenshot directory in the config file
There is no GUI option to set the screenshot directory, but this
allows power users to set it if they don't want to use the default.
2017-04-24 01:07:05 +01:00
Pala
3849a3e90e WINDOWS: Change location where screenshot are saved
This fixes bug #9701: WINDOWS: Flow of taking screenshots
on Windows is broken
2017-04-24 01:06:29 +01:00
rsn8887
45bd7a8b75 SDL: Fix erratic analog pointer + control options
Fixes erratic speeds in analog pointer motion
Implemented option to set analog/keyboard pointer speed
and control the analog joystick deadzone. The deadzone option appears
only if the build supports analog joystick (via JOY_ANALOG define)
2017-02-22 16:52:09 -06:00
Bastien Bouclet
6234b93813 SDL: Add a fixme regarding the encoding of the string returned by getTextFromClipboard 2016-09-13 09:21:51 +02:00
Bastien Bouclet
9e502bf9aa SDL: Plug a memory leak in OSystem_SDL::getTextFromClipboard 2016-09-13 09:19:53 +02:00
Thierry Crozat
a2a985368c BUILD: Tie the SDL_net version to the SDL version
This means that when using SDL 1.2 we use SDL_net 1.2, but when
using SDL 2 we now use SLD_net 2 as well. Both versions work
properly and there is not code change needed in ScummVM.

This change is because SDL_net depends on SDL, and using
SDL_net 1.2 with SDL 2 means we can end up needing to link with
both the SDL and SDL2 libraries.
2016-09-03 23:07:21 +01:00
Alexander Tkachev
b9bba9bd4b ALL: Move Clipboard support to OSystem
Commit adds kFeatureClipboardSupport. hasTextInClipboard() and
getTextFromClipboard().

OSystem_SDL has this feature if SDL2 is used.

EditableWidget and StorageWizardDialog use g_system to access clipboard
now.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
9f7bea156a CLOUD: Init SDL_Net 2016-08-24 16:07:55 +06:00
Alexander Tkachev
b3bf532211 CLOUD: Make CloudManager singleton
It's needed to ::destroy() it in main().
2016-08-24 16:07:55 +06:00
Alexander Tkachev
03217cd5c3 CLOUD: Add CurlJsonRequest
Now we can do REST API request by creating CurlJsonRequest and waiting
for it to call our callback. Passed pointer is Common::JSONValue.

This commit also does some minor variable renaming fixes.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
fade746f37 CLOUD: Add USE_CLOUD feature
Adds USE_CLOUD in both configure and create_project.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
ca2eeb2214 CLOUD: Add Cloud::Manager and Cloud::Storage
This commit introduces Common::CloudManager, which can be accessed from
OSystem.

The backend for this manager is Cloud::Manager (defined in
backends/cloud/manager.h). It should load all users storages from
configs and provide access to current Storage instance. For now it just
creates a new one.

Cloud::Storage (backends/cloud/storage.h) provides an API to interact
with cloud storage, for example, create new directory or sync files.
Right now it's not ready and has only two dummy methods: listDirectory()
and syncSaves().

There is Cloud::Dropbox::DropboxStorage backend
(backends/cloud/dropbox/dropboxstorage.h) for Cloud::Storage. Right now
it implements both listDirectory() and syncSaves() with starting timer
task and handling it by printing out some JSON examples.
2016-08-24 16:05:07 +06:00
Alexander Tkachev
7446ffd73b CLOUD: Integrate CloudThread into OSystem
Would be changed soon.
2016-08-24 16:05:07 +06:00
Bastien Bouclet
ad3ab61241 COMMON: Remove the EventRecorder dependency from OSystem
EventRecorder is in the gui lib which is not linked in the cxxtest suite.
2016-07-28 18:23:46 +02:00
Johannes Schickel
b32f347531 SDL: Get rid of reference to SDL 1.3.
We only support SDL 1.2 and SDL 2.
2016-03-13 14:07:56 +01:00
Matthew Hoops
55a87c59b6 BACKENDS: Use a virtual function for creating the SDL audio CD manager 2016-03-13 13:53:40 +01:00
Bastien Bouclet
b9a1074999 PS3: Make use of an updated SDL2 version
This version, available at https://bitbucket.org/bgK/sdl_psl1ght, is based on SDL 2.0.3.
2015-12-15 20:10:19 +01:00
Johannes Schickel
3f22c12c56 SDL: Handle icon setup in SdlWindow. 2015-02-16 01:25:22 +01:00
Johannes Schickel
627d766325 SDL: Add basic abstraction class for the SDL window. 2015-02-16 01:03:29 +01:00
Johannes Schickel
8530997fff SDL: Add experimental support for SDL2.
This is based upon skristiansson's change set to make ScummVM work with SDL2.
2015-01-25 20:23:25 +01:00
Johannes Schickel
d97889cea7 SDL: Cleanup graphics manager switching a bit. 2015-01-25 19:26:15 +01:00
Johannes Schickel
3a2db0135d SDL: Refactor WM specific functionality into SdlGraphicsManager. 2015-01-25 18:57:38 +01:00
Filippos Karapetis
d2c69a79fe BACKENDS: Remove trailing whitespace 2014-10-28 15:38:51 +02:00
Johannes Schickel
63304ee9ec SDL: Make GPL headers consistent in themselves. 2014-02-18 02:39:38 +01:00
D G Turner
fc80f5a346 SDL: Move debugging code to output SDL video driver name to initBackend.
The initBackend() function is called later after the command line is
parsed and thus debug() prints can be used, which are much less noisy.
2014-02-16 16:33:35 +00:00
D G Turner
2589228329 SDL: Add debugging code to output SDL video driver name being used. 2014-02-12 12:11:53 +00:00
Johannes Schickel
2fe303ce3f Merge pull request #409 from lordhoto/rtti
Enable RTTI and clean up the code by exploiting the availability of dynamic_cast.
2014-01-23 15:23:12 -08:00
Kirben
3950dad947 SDL: Remove misleading comments, based on incomplete information at MSDN. GetLocalInfo is supported on Windows 95 onwards, but MSDN fails to mention older Windows versions. 2013-11-11 23:53:53 +11:00
Johannes Schickel
919e577ba6 SDL: Fix invalid memory access in getSystemLanguage.
A call to setlocale can invalidate the string a previous setlocale call
returned. Instead of saving a pointer we copy the returned string now. This,
for example, fixes invalid memory access on my system.

See de8da01b0e for the commit introducing the
invalid memory access.
2013-11-03 18:47:03 +01:00
D G Turner
de8da01b0e SDL: Remove side effect of setlocale() call to get Language.
This is to fix bug #3615148 -  "ALL: sscanf("%f"), atof() etc. not
portable due to Locale"

The side effect of setlocale("") is to change the active locale
from the default of "C" to the detected system locale, but this
changes the behaviour of sscanf() and several other functions
in a system dependent and non-portable way. This has caused
bugs in the ZVISION engine when running Zork Nemesis.

The solution is to restore the default "C" locale after the call
to get the language.

Thanks to criezy for working out this fix.
2013-11-03 17:10:18 +00:00
Johannes Schickel
ea6d38d5f3 SDL: Make activateManager/deactivateManager SdlGraphicsManager specific.
We can do this now that we can use virtual inheritance and dynamic_cast
because we enabled RTTI.
2013-10-24 00:06:32 +02:00
Johannes Schickel
092d36f392 SDL: Reduce code duplication a bit.
Now instead of initializing this in OSystem_SDL::initSDL (and in subclasses
overwriting this) we simply initialize it in OSystem_SDL::init.
2013-10-23 22:59:13 +02:00
Johannes Schickel
c323dedf3c SDL: Fix default graphics mode for switchable case.
The former code (incorrectly) assumed that the getDefaultGraphicsMode returns
the index in the table returned by getSupportedGraphicsModes. Now the correct
ID is searched and then used.
2013-10-23 22:59:09 +02:00
Johannes Schickel
d34c9d5bcb SDL: Do not require a static graphics mode list in OpenGL and SurfaceSDL. 2013-10-23 22:59:06 +02:00
Johannes Schickel
a9cb67df08 SDL: Only allow switching of SurfaceSDL <-> OpenGL when no custom manager is used. 2013-10-23 22:59:02 +02:00
Johannes Schickel
17cb26b93c SDL: Simplify initial graphics manager selection for OpenGL. 2013-10-23 22:58:53 +02:00