We use functions from GL_ARB_framebuffer_object extension and not from
GL_EXT_framebuffer_object where functions are suffixed by EXT.
This avoids crashes on implementations supporting only the EXT version.
As done in the PSP2, Android and Switch ports.
Fix inconsistent reported state for the Aspect Ratio setting on PS3
(similar to Trac#11743 for Android).
That function allows more readable code, without needing to test if the
returned value is greater than 32.
Supported platforms are:
Windows 95: Supported.
Windows 98: Supported.
Windows NT: Required Windows NT 4.0 or later.
Windows 2000 and newer: Supported.
Windows CE: Requires Windows CE 1.0 or later.
This fix comes from my port of SCUMMVM for Windows CE/Embedded/Mobile since
this family of OSs support ShellExecuteEx(), but not ShellExecute().
Currently, the text-to-speech manager will try to update the voices whenever TextToSpeechManager::pushState()/popState() is called. This causes lags of 4 - 5 seconds on Windows. Also, a warning is triggered each time. This commit prevents that from happening if the tts option is not enabled.
This commit currently affects only Windows. Other backends don't make use of the new _enabled setting. I don't know if it would make sense for any of these and I also wouldn't be able to test it.
This likely needs further work after some testing with OpenPandora toolchain
to check that this builds a working binary and a basic test to see if this
fixes the reported issue which has been present after v1.7.0 release which
did not exhibit this problem.
OGLES2 doesn't support uniform booleans so we use macros to make it use
integers in this case. For other platforms, this change should be a
noop.
OGLES2 doesn't like float suffix for constants, remove it as well.
We now link with OpenGL dynamically so symbols are provided by GLAD.
If it's not supported pointer will be null.
OGLES2 should support these functions so they must be removed
The previous workaround was introduced to fix fighting using the keypad
in Indy 3. It enforced genering a number on KEYCODE_KP# events even
when KBD_NUM is not set. The issue on AmigaOS is that SDL never reports
KBD_NUM as being set. Instead we get different keycodes depending if
numlock is on or off (e.g. KEYCODE_KP3 and KEYCODE_PAGEDOWN).
The new workaround is to set the KBD_NUM modifier whenever we receive
a KEYCODE_KP# event from SDL. This way we also generate a number, but
in addition this is consistent with the modifier and works with code
that checks the KDB_NUM modifier (such as the GUI code or the AGI
engine).
There are two ways the user can specify a screenshot path: by
editing the config file manually, or by passing it on the command
line. In the later case it is added to the transient domain that
is cleared when opening the launcher, so it only worked when also
specifying a game to start on the command line. With this change
a screenshot path specified on the command line will be used until
quitting ScummVM.
This could be confusing if the user had the ability to specify the
path in the ScummVM Options, as then we would probably want to use
the new specified path immediately. But since the path does not
appear in the options, this change should work fine.
Instead we call the OSystem_SDL implementation of getScreenshotsPath(),
as done in the POSIX backend. This change means that if we change how
we handle a user-specified screenshot path in the SDL backend, the
Windows and macOS backends will still get the correct path.
In HiDPI mode, the window coordinates and the drawable area coordinates
might be on a different scale. The allowed mouse area needs to be scaled
accordingly before passing it to SDL_SetWindowMouseRect().
This fixes bug #13152.