Commit graph

493 commits

Author SHA1 Message Date
rsn8887
3cc12c3da2 PSP2: Always use direct touch on front touch panel 2018-01-25 11:57:31 -06:00
rsn8887
5de0a8b3a0 PSP2: Enable rear touch only when Touchpad Mouse Mode is on 2018-01-24 20:06:46 -06:00
rsn8887
690d39cc29 PSP2: Increase direct touch accuracy 2018-01-24 19:06:22 -06:00
rsn8887
5551241c51 PSP2: More settings for touch (direct touch on/off, pointer speed) 2018-01-24 04:16:49 -06:00
rsn8887
5189dbb7ba PSP2: Implement touch controls (front and back panel) 2018-01-23 07:27:11 -06:00
Fiodar Stryzhniou
c0c186d001 SYMBIAN: Add missed brace 2018-01-14 06:49:54 +00:00
Bastien Bouclet
49a48cedea SDL: Scale the joystick mouse speed with the vertical window size
The mouse cursor now moves across the screen in a similar amount of time
irrespective of the display resolution.
2018-01-13 10:29:10 +01:00
Bastien Bouclet
bb5e8d3a11
Merge pull request #1090 from bgK/remove-zaurus-yopy
PORTS: Remove the Zaurus and Yopy ports
2018-01-03 06:40:49 +01:00
Bastien Bouclet
1fa80ea3a3 SDL: Add debug traces for joystick hotplug 2017-12-27 07:30:53 +01:00
Bastien Bouclet
6437ca1ede PS3: Stop using SDL mouse focus events to detect the XMB
Mouse focus events are also sent by SDL when the mouse is warped outside
of the window area. App suspended / resumed are now used. These are only
sent by SDL when opening / closing the XMB on the PS3.

Fixes #10340.
2017-12-26 21:29:30 +01:00
rsn8887
dafadbc8c7 PSP2: Add controller config, remove joystick event handling 2017-12-26 21:11:05 +01:00
Bastien Bouclet
1522fc8e2f SDL: Add support for joystick hotplug
Fixes #10366.
2017-12-26 21:11:05 +01:00
Bastien Bouclet
5838894f24 PSP2: Remove identical to base class joystick axis event handling 2017-12-26 21:11:04 +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
Bastien Bouclet
6fb50d562f PS3: Remove gamepad button mapping
SDL_PSL1GHT now supports the GameController API. ScummVM's default
mapping is now used.
2017-12-26 21:11:04 +01:00
Bastien Bouclet
ac78058fcd SDL: Initial support for game controllers
The button mapping is that of the Vita port

Co-Authored-By: rsn8887 <rsn8887@users.noreply.github.com>
2017-12-26 21:11:04 +01:00
Bastien Bouclet
60a1100beb PORTS: Remove the Zaurus port
There was never an official release. The last unofficial release of ScummVM was 0.6.0.
Production ceased in 2007.
2017-12-19 07:42:22 +01:00
Bastien Bouclet
ca469f728b PORTS: Remove the Yopy PDA port
No official release was ever done for that platform. Production ceased
in 2005.
2017-12-19 07:37:08 +01:00
Bastien Bouclet
3ec01653c3 ALL: Merge from ScummVM rev 3a933138ce 2017-12-06 21:41:03 +01:00
Bastien Bouclet
6eb9a48bbd EVENTS: Delay initializing the virtual keyboard
The virtual keyboard requires the backend to be fully initialized
because it needs the display size.

Fixes #10338.
2017-11-28 05:49:45 +01:00
Bastien Bouclet
bc5ac6440c EVENTS: Fix one ms error in repeat event generation time check 2017-11-19 20:07:51 +01: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
Bastien Bouclet
7d811d356e EVENTS: Allow disabling repeat event generation 2017-11-19 16:12:50 +01:00
Bastien Bouclet
7539a77eeb EVENTS: Move key repeat handling to its own method 2017-11-19 16:12:50 +01:00
Bastien Bouclet
8beb519c5e EVENTS: Rename synthetic to kbdRepeat 2017-11-19 16:12:50 +01:00
Colin Snover
d1b77d4b68 BACKENDS: Fix missing mouse events when system cursor cannot be moved
Normally with SDL, a mouse motion event will be sent after the
system mouse cursor has been moved by a call to
SDL_WarpMouseInWindow, but if the system cursor cannot be moved
(e.g. because the window does not have mouse focus), games still
need to receive these mouse events so they can successfully update
the mouse position internally. Otherwise, games continue to think
the mouse is still in the original position and will continue to
try to perform whatever action is associated with that mouse
position.

Refs Trac#9689.
2017-10-15 13:24:21 -05:00
Colin Snover
cd538ffffa BACKENDS: Do not send mouse events to games occurring outside the game draw rect 2017-10-15 13:24:21 -05:00
Colin Snover
de2bbe3b97 BACKENDS: Refactor OpenGL & SDL graphics backends
This patch refactors the OpenGL and SDL graphics backends,
primarily to unify window scaling and mouse handling, and to
fix coordinate mapping between the ScummVM window and the
virtual game screen when they have different aspect ratios.

Unified code for these two backends has been moved to a new
header-only WindowedGraphicsManager class, so named because it
contains code for managing graphics managers that interact with
a windowing system and render virtual screens within a larger
physical content window.

The biggest behavioral change here is with the coordinate
system mapping:

Previously, mouse offsets were converted by mapping the whole
space within the window as input to the virtual game screen
without maintaining aspect ratio. This was done to prevent
'stickiness' when the mouse cursor was within the window but
outside of the virtual game screen, but it caused noticeable
distortion of mouse movement speed on the axis with blank
space.

Instead of introducing mouse speed distortion to prevent
stickiness, this patch changes coordinate transformation to
show the system cursor when the mouse moves outside of the virtual
game screen when mouse grab is off, or by holding the mouse inside
the virtual game screen (instead of the entire window) when mouse
grab is on.

This patch also improves some other properties of the
GraphicsManager/PaletteManager interfaces:

* Nullipotent operations (getWidth, getHeight, etc.) of the
  PaletteManager/GraphicsManager interfaces are now const
* Methods marked `virtual` but not inherited by any subclass have
  been de-virtualized
* Extra unnecessary calculations of hardware height in
  SurfaceSdlGraphicsManager have been removed
* Methods have been renamed where appropriate for clarity
  (setWindowSize -> handleResize, etc.)
* C++11 support improved with `override` specifier added on
  overridden virtual methods in subclasses (primarily to avoid
  myself accidentally creating new methods in the subclasses
  by changing types/names during refactoring)

Additional refactoring can and should be done at some point to
continue to deduplicate code between the OpenGL and SDL backends.
Since the primary goal here was to improve the coordinate mapping,
full refactoring of these backends was not completed here.
2017-10-15 13:24:20 -05:00
Colin Snover
b53020f704 BACKENDS: Fix some comment typos 2017-10-15 13:24:20 -05:00
Bastien Bouclet
84e62b6c8d ALL: Sync with ScummVM - rev. 87ebc7140c 2017-09-02 15:04:07 +02:00
Thierry Crozat
00bbb73ce5 SDL: Make sure we get the correct window size with SDL2
When updating or recreating the window, if we changed the window
size at the same time we also toggle between OpenGL and non
OpenGL mode, or toggle fullscreen mode, we may have a pending
SDL resize event with the wrong size. So we need to make sure to
append another one with the correct size to end up with the correct
size. This fixes bug #9971.
2017-07-27 21:05:44 +01:00
Thierry Crozat
a20d2172fa SDL: Respect OS setting for wheel scroll direction on SDL 2.0.4+
The setting was already respected on SDL < 2.0.4 (such as SDL1).
If the OS inverts the scrolling direction, this is reflected on the sign
of the y value of the SDL event. Since version 2.0.4 the SDL event
also had a flag to indicate if the direction is flipped and we were
using it to change back the y sign. That means the OS scrolling
direction setting was not respected. With this commit we now have
a consistent behaviour with all SDL versions (the OS scroll direction
setting is respected).

If our wheel events are used for something other than scrolling
however, we might want to get the actually wheel move direction
(i.e. use a Common::EVENT_WHEELDOWN when moving the wheel
down even if the OS scroll setting is to flip it). In such a case we
might want to revert this change and instead add an additional flag
to the event so that we know the scroll direction should be flipped
and use it in places where the event is used for scrolling.
2017-03-21 21:06:35 +00:00
Eugene Sandulenko
547e5846a1 Merge pull request #915 from rsn8887/vita
PSP2: Add Playstation Vita support
2017-03-04 22:45:01 +01:00
cpasjuste
70988527c6 PSP2: Add Playstation Vita (PSP2) support 2017-03-04 15:42:19 -06:00
rsn8887
12e226922d SDL: Always use sub-pixel joystick pointer resolution 2017-03-01 09:55:20 -06:00
rsn8887
58bbc0e887 SDL: fix pointer speed setting 8 (was too slow) 2017-02-27 19:59:18 -06: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
Eugene Sandulenko
8458e3deb7 Merge pull request #905 from lubomyr/master
ANDROIDSDL: added tab Control in main Options menu for switching some features
2017-02-21 23:29:51 +01:00
rsn8887
86c6c7c903 SDL: increase resolution of slow analog pointer motion 2017-02-18 19:22:04 -06:00
rsn8887
c0b095d793 SDL: Cleanup, replaced _km.multiplier with #define 2017-02-18 18:20:10 -06:00
rsn8887
75004c429c SDL: improved internal joystick event handling 2017-02-18 12:00:22 -06:00
rsn8887
09a6029781 SDL: slow analog ('modifier'+stick) made slower 2017-02-18 11:59:16 -06:00
lubomyr
75a08488f9 ANDROIDSDL: code refactoring and optimization 2017-02-18 17:58:47 +02:00
rsn8887
613c6f4f7f SDL: More fixes to jerky analog joystick pointer
For some engines such as Dreamweb that a previous fix did not apply
to, this fixes bug 6996: Android: Mouse pointer control with
analog joystick is unusable
2017-02-17 17:55:09 -06:00
rsn8887
fb50d5934d SDL: Fix jerky/laggy analog joystick mouse control
This fixes bug 6996: Android: Mouse pointer control with
analog joystick is unusable
2017-02-14 23:05:34 +00:00
lubomyr
2d7803c22f ANDROIDSDL: code optimization 2017-02-01 14:34:32 +02:00
Pawel Kolodziejski
19bcd1f3bc ALL: Sync with ScummVM 2016-11-12 12:59:06 +01:00
Pawel Kolodziejski
9ba9c69b3f ALL: Sync with ScummVM - rev. 823c2f899b 2016-11-12 08:49:29 +01:00
Eugene Sandulenko
641012a141 Merge pull request #777 from m-kiewitz/master
SDL: Fix keyboard on macOS, when using SDL2, fix directional keypad
2016-11-08 00:57:14 +01:00