Commit graph

320 commits

Author SHA1 Message Date
Paul Gilbert
baccbedf50 GRAPHICS: Changed surface classes sizes from uint16 to int16 2021-07-04 18:24:27 -07: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
b1ccd91ba6 OPENGL: Fix compilation on Android 2021-06-17 00:52:46 +01:00
Cameron Cawley
66c0c57d10 BACKENDS: Add support for OpenGL 1.1 contexts 2021-06-16 23:16:01 +01:00
Thierry Crozat
31a6b39fb3 SDL: Add new pixel perfect stretch mode for OpenGL
This mode ensure that an integral scaling is used both for the width
and for the height. Compared to the old pixel perfect stretch mode
it thus differs in the way it handles the aspect ratio correction.
It may stretch or squeeze the vertical direction to snap it to a
multiple of the original game height.
2021-06-05 14:17:40 +01:00
Thierry Crozat
1e51093102 Revert "OPENGL: Fix aspect ratio bug when switching render"
This reverts commit 8af0b8baa5.

That commit introduced a regression causing toggling the
aspect ratio correction using the hotkey to be ignored. And
I checked that reverting the commit did not reintroduced the
bug that it was supposed to fix. However since commit ceca0b5ae
the window size in OpenGL mode no longer depends on whether
the Aspect Ratio correction is enabled or not.
2021-06-02 21:50:18 +01:00
Martin Gerhardy
9d82fa51df COMMON: removed USE_TTS check from engines
OSystem now just returns a nullptr if there is no text to speech manager instance
(because none is compiled into the binary, or the system doesn't provide support
for it). This removed the need for the engine authors to add scummvm osystem compile
time options checks into their engine code
2021-05-03 14:13:41 +03:00
Eugene Sandulenko
5e7fe2dc57
JANITORIAL: Replace spaces in indentation with tabs 2021-04-15 21:20:36 +02:00
lamebanana
8af0b8baa5 OPENGL: Fix aspect ratio bug when switching render 2021-04-14 20:33:59 +02:00
Cameron Cawley
24b59ecb4c Revert "OPENGL: Implement high DPI support on Android (#1895)"
This reverts commit 177d709909.
2021-04-12 00:54:12 +01:00
Eugene Sandulenko
5e395d166a BACKENDS: HiDPI support in OpenGL backend 2021-04-11 21:21:44 +02:00
Thierry Crozat
b6186ccdd6 OPENGL: Fix hidden overladed virtual saveScreenshot() warning
This noisy warning at least occur when building for Android
(OpenGL, but not SDL).
2021-04-07 00:09:50 +01:00
Thierry Crozat
7408dee5df Revert "GRAPHICS: Tentative fix saveScreenshot() warning for OpenGL"
This reverts commit 0f118d0210.
2021-04-07 00:09:50 +01:00
antoniou79
0f118d0210 GRAPHICS: Tentative fix saveScreenshot() warning for OpenGL
Building for Android (OpenGL) had noisy warning for hiding overloaded virtual function

Added a dummy implementation in OpenGLGraphics manager, and also for OpenGLSdlGraphicsManager it now explicitly calls the SdlGraphicsManager implementation for the void argument signature.
2021-04-03 14:03:36 +03:00
Cameron Cawley
4284d9754f
OPENGL: Remove SDL specific code from OpenGLGraphicsManager
The "OSystem::kFeatureFullscreenToggleKeepsContext" feature is already handled in the OpenGLSdlGraphicsManager subclass.
2020-10-13 20:45:32 +01:00
Paweł Kołodziejski
59ba9cb715
SDL: Do not allow toggle fullscreen for backends which can lose opengl context used for 3d games. (#2514) 2020-10-13 20:27:58 +02:00
Paweł Kołodziejski
35b9cccbde ALL: Merge ResidualVM 2020-10-09 19:44:13 +02:00
Pawel Kolodziejski
c12503a869 Synced with ScummVM rev: f6c5fed173 2020-10-03 18:14:12 +02:00
Pawel Kolodziejski
d8f2040dba ALL: Drop setupScreen API, use new initGraphics3d from engine API.
Enabled system API for begin/end gfx transactions, initSize, setGraphicsMode.
Function setGraphicsMode will use optional params to trigger 3d rendering
and switch to proper SDL Gfx manager.
2020-10-02 19:14:19 +02:00
antoniou
50d2ae3b4c OPENGL: Use nearest neighbor scaling for overlay UI when filtering is disabled
User choice in launcher's Option, Graphics Tab detemines whether filtered graphics should be used

This now affects the ScummVM UI (it was previously set to not affect the UI overlay for OPENGL)
2020-10-02 12:38:46 +03:00
Pawel Kolodziejski
d0713f1072 BACKENDS: Fixed Android compilation 2020-09-29 17:00:04 +02:00
Pawel Kolodziejski
3e453e0240 BACKENDS: Attempt to fix Android compilation 2020-09-29 15:59:26 +02:00
Pawel Kolodziejski
6aa7cf6025 BACKENDS: Made code less different in SDL platform backend 2020-09-29 15:08:16 +02:00
aryanrawlani28
56911beea2 GUI: U32: Add and use a U32Tokenizer
- Added in common/tokenizer.cpp
- Uses iterators to function
2020-08-30 14:43:41 +02:00
aryanrawlani28
d4d5b8906e GUI: U32: Begin making TTS take in U32Strings for saying
Only for strings without an explicit action. The first level takes in a u32 string, encodes it, and passes it along further with the default action

- For gui widgets, the strings are passed in as native u32 strings.
- For everything else, they are being converted to u32 by Common::convertToU32... and then being passed along
2020-08-30 14:43:41 +02:00
aryanrawlani28
f800ca4ada GUI: U32: Convert majority of code to use U32
This commit also includes some additional major changes.

- Return U32String from TransMan getTranslation()
- Change tooltips to be U32Strings
- Remove temporary code of convertToU32String
- U32 Support various dialogs (Browser, FileBrowser, Messages, Chooser, etc)
- U32 for music plugins
- U32 for OSD messages
- Add some helper functions to ustr.cpp
- Change default tooltips from nullptr & 0 -> ""
- Some runtime exceptions may occur when changing languages due to incorrect String::Format
2020-08-30 14:43:41 +02:00
BeWorld
3f69eca932 MORPHOS: remove USE_GLES_MODE
Not necessary
2020-08-21 00:59:18 +02:00
BeWorld
85f7d5865b MORPHOS: Update opengl-sys.h 2020-08-21 00:59:18 +02:00
Eugene Sandulenko
432383a667 ALL: Remove Tizen port 2020-08-01 14:42:45 +02:00
Cameron Cawley
b28e112d62 OPENGL: Use a 4 bytes per pixel mode when taking screenshots
GL_RGBA and GL_UNSIGNED_BYTE are guaranteed to be usable with glReadPixels() when using OpenGL ES 1.
2020-05-27 12:45:50 +02:00
Paul Gilbert
7b721eaac1 ENGINES: Adding debugger to base Engine class 2020-02-16 13:07:19 +02:00
rsn8887
1489f2ed0f OPENGL: Fix GUI centering when using Fit to window (4:3) mode 2020-01-23 15:06:08 -06:00
rsn8887
b8cf747ad5 OPENGL: Implement stretch mode Fit to window (4:3) 2020-01-22 04:24:42 -06:00
Cameron Cawley
d289fa5f98 OPENGL: Ensure surfaces created by saveScreenshot are the right way up 2020-01-02 20:53:29 +02:00
Cameron Cawley
e92ac655be BACKENDS: Add default implementation for GraphicsMode functions 2019-12-15 16:06:56 +02:00
Cameron Cawley
c3c3137ab3 BACKENDS: Move nextHigher2() into common/algorithm.h 2019-12-14 17:09:18 +02:00
sluicebox
b8390fa161 GRAPHICS: Add interface for horizontal shake 2019-11-19 00:20:40 +01:00
Cameron Cawley
d1fa1154fe BACKENDS: Fix using fillScreen in non-paletted screen modes 2019-11-10 01:25:46 +02:00
Cameron Cawley
177d709909 OPENGL: Implement high DPI support on Android (#1895)
* OPENGL: Implement high DPI support on Android

* PSP2: Fix build
2019-11-01 13:39:46 +02:00
Cameron Cawley
3d83d144a3 OPENGL: Fix warning when using builtin OpenGL functions 2019-10-18 16:49:12 +01:00
D G Turner
f6fff71d8d OPENGL: Add Missing Default Switch Cases
These are flagged by GCC if -Wswitch-default is enabled.
2019-10-05 04:54:57 +01:00
Cameron Cawley
7a05624e1b
ANDROID: Rewrite to make use of OpenGLGraphicsManager (#1695)
* ANDROID: Rewrite to make use of OpenGLGraphicsManager

* ANDROID: Fix emulated mouse button up events
2019-09-08 19:37:48 +01:00
Jaromir Wysoglad
bbbb608c52 TTS: Implement OSD message reading 2019-09-01 22:47:55 +03:00
Cameron Cawley
1feb86ee97 BACKENDS: Handle screen shaking in WindowedGraphicsManager 2019-08-15 02:01:21 +03:00
Cameron Cawley
d765440c1a OPENGL: Support RGBA8888 swapped textures when using OpenGL ES 2019-08-04 18:46:30 +01:00
Filippos Karapetis
d524d36a6a OPENGL: Specify a GLSL version tag, and rename reserved keywords
The GLSL version code has been taken from ResidualVM. The variable
'texture' is now a reserved keyword in GLSL 3.00, so it has been
renamed. This fixes compilation issues in AmigaOS4 (PR 1554).
2019-07-14 16:10:55 +03:00
Cameron Cawley
16f8c024d1 OPENGLSDL: Move stretch mode handling into OpenGLGraphicsManager 2019-06-24 02:19:28 +03:00
Cameron Cawley
0ddfe927ce OPENGLSDL: Move getSupportedFormats into OpenGLGraphicsManager 2019-06-22 01:15:39 +03:00
Cameron Cawley
205df5dbdf IMAGE: Fix taking screenshots on big endian systems 2019-03-02 07:29:22 +01:00
Cameron Cawley
8ae17b481a IMAGE: Move bitmap writing code out of OpenGLGraphicsManager 2019-03-02 07:29:22 +01:00