Commit Graph
34 Commits
Author SHA1 Message Date
Le Philousophe 87bad2cc7d COMMON: Allow games to use overlay for something else than GUI
This can be used for subtitles without changing the mouse coordinates.
2022-11-12 19:12:05 +01:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Cameron Cawley 5022489277 BACKENDS: Refactor the API for creating Mutexes 2021-11-12 20:19:45 +01:00
Cameron Cawley 3c5d806894 3DS: Log all messages to a file 2021-08-24 01:51:59 +02:00
Martin Gerhardy a0c237f7b9 EVENTRECORDER: added new event for OSystem::getTimeAndDate 2021-07-09 19:23:21 +02:00
Martin Gerhardy 5af1192580 BACKENDS: fixed segfault in EventRecorder with buffer out of bounds writes
==3124361== Invalid write of size 8
==3124361==    at 0x483F803: memmove (vg_replace_strmem.c:1270)
==3124361==    by 0x4DBF61: SurfaceSdlGraphicsManager::grabOverlay(void*, int) const (surfacesdl-graphics.cpp:1753)
==3124361==    by 0x482051: ModularGraphicsBackend::grabOverlay(void*, int) (modular-backend.cpp:215)
==3124361==    by 0x434EE1: GUI::ThemeEngine::clearAll() (ThemeEngine.cpp:376)
==3124361==    by 0x40128E: GUI::EventRecorder::preDrawOverlayGui() (EventRecorder.cpp:558)
==3124361==    by 0x481DB2: ModularGraphicsBackend::updateScreen() (modular-backend.cpp:173)
==3124361==    by 0x559967: Graphics::Screen::updateScreen() (screen.cpp:62)
==3124361==    by 0x55991C: Graphics::Screen::update() (screen.cpp:56)
==3124361==    by 0x38AFC7: TwinE::TwineScreen::update() (twine.cpp:126)
==3124361==    by 0x3B8759: TwinE::Screens::adjustPalette(unsigned char, unsigned char, unsigned char, unsigned int const*, int) (screens.cpp:150)
==3124361==    by 0x3B8A89: TwinE::Screens::fadeToPal(unsigned int const*) (screens.cpp:207)
==3124361==    by 0x3B8403: TwinE::Screens::loadImage(int, int, bool) (screens.cpp:80)
==3124361==  Address 0x31453050 is 16 bytes after a block of size 512,000 alloc'd
==3124361==    at 0x483AB65: calloc (vg_replace_malloc.c:760)
==3124361==    by 0x55B38C: Graphics::Surface::create(unsigned short, unsigned short, Graphics::PixelFormat const&) (surface.cpp:75)
==3124361==    by 0x551111: Graphics::ManagedSurface::create(unsigned short, unsigned short, Graphics::PixelFormat const&) (managed_surface.cpp:153)
==3124361==    by 0x4352D5: GUI::ThemeEngine::setGraphicsMode(GUI::ThemeEngine::GraphicsMode) (ThemeEngine.cpp:453)
==3124361==    by 0x434A52: GUI::ThemeEngine::init() (ThemeEngine.cpp:324)
==3124361==    by 0x43501B: GUI::ThemeEngine::refresh() (ThemeEngine.cpp:394)
==3124361==    by 0x405780: GUI::GuiManager::screenChange() (gui-manager.cpp:603)
==3124361==    by 0x405C6B: GUI::GuiManager::processEvent(Common::Event const&, GUI::Dialog*) (gui-manager.cpp:677)
==3124361==    by 0x404EBA: GUI::GuiManager::runLoop() (gui-manager.cpp:429)
==3124361==    by 0x3FD847: GUI::Dialog::runModal() (dialog.cpp:77)
==3124361==    by 0x36D747: launcherDialog() (main.cpp:106)
==3124361==    by 0x36FF92: scummvm_main (main.cpp:552)

It looks like the _videoMode.overlayHeight in SurfaceSdlGraphicsManager::grabOverlay and ThemeEngine::_backBuffer::h are somehow out of sync after
starting the game in a different resolution as the gui was started with. So the overlayHeight is updated - but the backbuffer (Surface) is not resized.

This is with event recorder being active - right after starting the game and switching the resolution.
2021-06-19 14:34:52 +02:00
Cameron Cawley 1d5f475c30 3DS: Rename the _3DS namespace 2021-02-15 02:58:15 +02:00
Cameron Cawley 5a47b09455 BACKENDS: Move default implementations of getScreenPixelBuffer into BaseBackend 2020-10-10 18:00:17 +02:00
Eugene Sandulenko bc4a1aed62 3DS: Fix compilation 2020-10-10 02:18:17 +02:00
Cameron Cawley 31be074893 BACKENDS: Add a function to return if the overlay is visible 2020-09-15 00:09:11 +02:00
aryanrawlani28 3fc336300f 3DS: Use U32Strings for displaying OSD Messages 2020-08-30 14:43:41 +02:00
Bastien Bouclet 0a567b6058 3DS: Implement OSystem::kFeatureFilteringMode 2020-07-19 17:41:05 +02:00
Eugene Sandulenko 449f895680 3DS: Fix compilation 2020-05-11 07:45:46 +02:00
Eugene Sandulenko 4f30f26d80 3DS: Fix compilation 2020-05-11 01:51:15 +02:00
Henrik "Henke37" Andersson e73fd6b2cd 3DS: Use PauseToken 2020-05-11 01:35:03 +02:00
Bastien Bouclet e1358b966a 3DS: Defer texture updates when the palette changes
Fixes a performance issue with the Gob engine where the palette is
updated a large number of times during a single frame.
2020-02-14 06:21:46 +01:00
Michael Ball b08ab0e130 3DS: Implement dynamic graphics modes to improve performance
When launching a game, switch the graphics mode if necessary
(and by extension the pixel formats used for Graphics::Surfaces
and Sprites) to the one that most closely matches the pixel format
used in-game.

Additional Fixes:
- Fix to prevent cursor position from changing when exiting a menu.
- Fix to prevent updating of Magnification viewport position when
virtual keyboard is open.
- Cosmetic code fixes for improper whitespace and missing curly brackets.
- Remove RGB8 as a mode option because:
  1) It was already commented out in the master 3DS backend.
  2) There are currently no games that explicitly require it.

Notes:
- As these graphics modes are automatically implemented on a per-game basis, they
are meant for backend use only and are purposefully not accessible through the
Options menu.
- RGBA8 (aka RGBA8888) remains the default pixel format, being used for the launcher
menu, CLUT8, and for games which do not specify a particular format.
2020-02-07 18:33:56 +01:00
Bastien Bouclet 78ab571519 3DS: Update the port to take advantage of the new keymapper 2020-01-29 08:51:30 +01:00
Cameron Cawley e92ac655be BACKENDS: Add default implementation for GraphicsMode functions 2019-12-15 16:06:56 +02:00
Michael Ball 6f678e6e84 3DS: Prevent magnify effect from updating while the GUI is active 2019-11-30 18:53:23 +01:00
sluicebox b8390fa161 GRAPHICS: Add interface for horizontal shake 2019-11-19 00:20:40 +01:00
Bastien Bouclet 652722e760 3DS: Rework mouse cursor movement
- Fix clipping the cursor position
- Ensure the mouse has the same vertical and horizontal speed
2019-11-07 11:02:00 +01:00
Bastien Bouclet 6901ee0242 3DS: Use the full resolution for the overlay on the top screen 2019-11-07 11:02:00 +01:00
Bastien Bouclet 3fcbbbef44 3DS: Reworked OSD message display
So the game remains interactive while OSD message are displayed.
2019-11-05 06:09:04 +01:00
Bastien Bouclet 886be5178e 3DS: Some changes to magnify mode 2019-11-05 06:09:04 +01:00
Michael Ball 78de572404 3DS: Implement magnify mode toggle on L and move keyboard to Y/DRIGHT 2019-11-05 05:51:45 +01:00
Bastien Bouclet 036d61cbd6 3DS: Implement cloud sync support 2019-11-03 19:14:15 +01:00
Bastien Bouclet f22e07825f 3DS: Embed ScummVM's support files in the package 2019-10-14 21:22:23 +02:00
Nitrus 2122c07d5f 3DS: Update header inclusions and forbidden symbols 2018-11-21 07:54:49 +00:00
Colin Snover bda253b1ac BACKENDS: Constify PaletteManager::grabPalette implementations 2017-10-15 13:47:19 -05:00
Eugene Sandulenko 355c4fa646 JANITORIAL: Remove more trailing spaces 2016-10-09 15:02:02 +02:00
Thomas Edvalson 1531b4ddbf 3DS: Add config class/dialog, c-pad cursor control, and option to disable screens 2016-04-22 16:43:59 -04:00
Thomas Edvalson f5d73cac8a 3DS: Add CIA format build, add timer handler thread, fix APT service suspending/sleeping/exiting 2016-04-11 15:15:42 -04:00
Thomas Edvalson e2b9572a83 3DS: Initial commit 2016-04-06 02:12:02 -04:00