aboutsummaryrefslogtreecommitdiff
path: root/backends
AgeCommit message (Collapse)Author
2017-12-03ALL: Remove obsolete register keywordColin Snover
The register keyword was deprecated from the C++11 standard, <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4193.html#809>, and removed from the C++17 standard, <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4340>, so cannot exist in a well-formed C++17 program. It has never done anything in GCC <https://gcc.gnu.org/ml/gcc/2010-05/msg00113.html> and because of the way it is specified in the standard, it is “as meaningful as whitespace” <http://www.drdobbs.com/keywords-that-arent-or-comments-by-anoth/184403859>. The one remaining use of the register keyword is in the DS backend, where it is used to create a local register variable using the non-standard GCC Extended Asm feature. Closes gh-1079.
2017-12-03SDL: Fix memory corruption when switching to/from 32-bit cursorsColin Snover
When a 32-bit cursor has the same size as an 8- or 16-bit cursor, the mouse surfaces were not being regenerated even though the 32-bit cursors have a different memory requirement. This lead to memory corruption as an inappropriate surface would be used for the other type of cursor. The shoe-horned 32-bit cursor support is clearly showing its scrappy nature here and probably ought to be revisited in the future if the SurfaceSdl graphics manager sticks around. Fixes Trac#10349, Trac#10350, Trac#10351.
2017-12-02PSP2: fix clipping and display quality for odd resolutions (Phantasmagoria)rsn8887
2017-12-02PSP2: fix odd resolutions on PSP2, fixes Phantasmagoriarsn8887
2017-12-01BACKENDS: Fix shake position getting stuckColin Snover
If a game is doing a screen shake (for example, DOTT when the stereo is on), and the user does an RTL, the screen shake offset may get stuck if the engine does not reset it on shutdown. To avoid this in all cases, just always reset the screen shake whenever the graphics manager is told to switch to a new graphics mode.
2017-11-29MAEMO: Update debian/changelogTarek Soliman
2017-11-30RELEASE: This is 2.1.0gitThierry Crozat
2017-11-29SDL: Don't use the window size hint for fullscreenBastien Bouclet
Prevents the opengl backend from changing mode when entering fullscreen for games with a window size hint. Fixes #10335. Closes gh-1074.
2017-11-28RISCOS: Improve detection of absolute pathsCameron Cawley
2017-11-28RISCOS: Fix using filenames with spacesCameron Cawley
2017-11-28EVENTS: Delay initializing the virtual keyboardBastien Bouclet
The virtual keyboard requires the backend to be fully initialized because it needs the display size. Fixes #10338.
2017-11-27SDL: Store fake mouse warp event in virtual coordinatesColin Snover
Normally, notifyMousePosition converts real mouse events into the virtual coordinate system, but events only get sent through notifyMousePosition if they are real events from SDL since that method also decides if the real mouse is inside the content area or not. As such, these fake events need to be pre-converted to virtual coordinates or else the wrong values are sent through to the engine when a scaler or AR correction is in use.
2017-11-25ANDROID: Fix illegal-in-C++11 narrowing conversionsColin Snover
2017-11-26Revert "SDL: Use RLE acceleration for SDL2 transparent surfaces"Thierry Crozat
This reverts commit 6b4195a542083c97f696c843b9823d578b018996. 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-24Merge pull request #1063 from bgK/keyboard-repeatBastien Bouclet
SDL2: Improve handling of keyboard repeat events
2017-11-21RELEASE: 1.10 will henceforth be known as 2.0Colin Snover
General consensus on the ML was that people wanted to do this. http://lists.scummvm.org/pipermail/scummvm-devel/2017-November/012008.html
2017-11-19EVENTS: Fix one ms error in repeat event generation time checkBastien Bouclet
2017-11-19SDL: Improve handling of SDL2 keyboard repeat eventsBastien Bouclet
- 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-19EVENTS: Allow disabling repeat event generationBastien Bouclet
2017-11-19EVENTS: Move key repeat handling to its own methodBastien Bouclet
2017-11-19EVENTS: Rename synthetic to kbdRepeatBastien Bouclet
2017-11-17SDL: Grab mouse when ScummVM is started in fullscreen modeColin Snover
2017-11-15SDL: Don't pass null pointers to SDL_DestroyTexture/SDL_DestroyRendererColin Snover
SDL does not like this and will raise an assertion when built with internal SDL assertions turned on. With internal assertions turned off, it will still call SDL_SetError any time a null pointer is passed, though it will not raise an assertion or crash.
2017-11-11SDL: Fix assertion when using 4bpp cursors with a key colorBastien Bouclet
Myst ME uses such cursors.
2017-11-11SDL: Use RLE acceleration for SDL2 transparent surfacesThierry Crozat
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-11SDL: Preserve mouse position when switching between OpenGL and SurfaceSDL ↵Thierry Crozat
backends Since those GraphcisManager initialize the cursor position to (0,0) when created the cursor was jumping to the top left corner and then moving back to its initial position as soon as the mouse was moved. Now it stays at its initial position. There are still some issues with it when changing between OpenGL and SurfaceSDL at the same time as toggling fullscreen. But it is not worse than before.
2017-11-11SDL: Fix display artefacts with transparent OSD messageThierry Crozat
If we do not update the area below the message, it is just blitted on top of itself again and again and gets progressively less transparent. It also causes artefacts when the mouse pass below the OSD message.
2017-11-10SDL: fix various OSD message artifactsPatrik Dahlstrom
On the OpenPandora handheld, the OSD message would not render unless you moved the cursor in the area where it was supposed to show. Additionally, the OSD message was not transparent like in v1.8. This commit fixes both these issues.
2017-11-07SDL: Get correct default graphics mode ID when queriedColin Snover
Fixes Trac#10312.
2017-11-07LINUX: Fix Header for major/minor macros, thus removing warnings.D G Turner
Warnings are as follows: "In the GNU C Library, "minor" is defined by <sys/sysmacros.h>. For historical compatibility, it is currently defined by <sys/types.h> as well, but we plan toremove this soon. To use "minor", include <sys/sysmacros.h> directly. If you did not intend to use a system-defined macro "minor", you should undefine it after including <sys/types.h>"
2017-10-23SDL: Automatically grab mouse upon entering fullscreenColin Snover
Folks are confused about the new behaviour where the mouse is not restricted to the game area in fullscreen, which is understandable. This changes mouseIsGrabbed to use SDL directly in order to avoid making changes to the user preference in the _inputGrabState. Otherwise we'd either clobber the user's previous windowed mouse grab preference, or require maintaining a second variable just to track the original state, when we can have SDL do that for us.
2017-10-19SDL: Fix SDL1 cursor position when using a touchscreenTarek Soliman
I noticed that in Maemo the cursor was offset after the SDL refactoring in de2bbe3b9738ef95b2529db989570770ef434f9d In Maemo when entering fullscreen, ScummVM receives a SDL_VIDEORESIZE event with the native touchscreen resolution rather than the current window size. This causes a call to notifyResize. Before that refactoring, notifyResize did nothing (in SDL1). Now it calls handleResize but doesn't actually set a new video mode. This messes up the coordinate mapping, causing an overcorrection for the cursor position.
2017-10-17SDL: Fix missing scaled cursors in SDL 2.0.4 on WindowsColin Snover
This may be a problem with SDL 2.0.4 generally, not just on Windows, but it doesn't really matter much since it can't be broken on *any* platform.
2017-10-16SDL: Fix 32bpp cursor scaling in SDL1Colin Snover
The SDL1 loop is not very optimal. Unfortunately all our existing scalers only work in 16bpp and I don't have time to fix that right now, so this is fine.
2017-10-15SDL: Fix scaled 32bpp cursor renderingColin Snover
2017-10-15DINGUX: Really constify getFeatureStateColin Snover
2017-10-15DINGUX: Fix missing const on hasFeature/getFeatureState implementationColin Snover
2017-10-15DINGUX: Replace usage of old SurfaceSdlGraphicsManager APIsColin Snover
2017-10-15GPH: Replace usage of old SurfaceSdlGraphicsManager APIsColin Snover
2017-10-15PSP: Improve const-correctnessColin Snover
2017-10-15PSP2: Replace usage of old SurfaceSdlGraphicsManager APIsColin Snover
2017-10-15OPENPANDORA: Remove duplicated loadGFXMode codeColin Snover
2017-10-15BACKENDS: Constify PaletteManager::grabPalette implementationsColin Snover
2017-10-15BACKENDS: Fix up graphics manager ports with const & override where appropriateColin Snover
2017-10-15SDL: Allow window size to be reset whenever launcher is visibleColin Snover
This ensures the window gets resized properly when a user changes the scaler options in the GUI. Simply unlocking the window size on a call to setGraphicsMode is not good enough, because the scaler mode can be changed by games during mode switches, and we don't want to reset the window size in that case.
2017-10-15SDL: Support 32bpp cursor renderingColin Snover
32bpp cursor scaling is not available, but this should be fine as many of the software scalers are not designed to work with >16bpp data in any case. This change also includes some minor cleanup of unnecessary #ifdefs around code that works equally well with or without USE_RGB_COLOR, to simplify the implementation.
2017-10-15BACKENDS: Fix missing mouse events when system cursor cannot be movedColin Snover
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-15BACKENDS: Do not send mouse events to games occurring outside the game draw rectColin Snover
2017-10-15SDL: Minor code cleanup to declare variables at point of first useColin Snover
2017-10-15BACKENDS: Fix GraphicsManager handling of empty cursorsColin Snover
The SDL graphics manager was just ignoring calls from CursorMan to set the cursor to a blank cursor, which meant engines that did not immediately send a cursor to CursorMan at startup would still show the launcher's cursor (usually with a broken palette). The OpenGL graphics manager would try to generate and draw an invalid cursor surface when receiving an empty cursor.