The OSystem_SDL::getDefaultGraphicsMode was returning the
default for the current graphics manager and not the default
for the OSystem_SDL instance. So for example if the default
is SDL Surface when starting ScummVM with the gfx_mode not
set in the config file, and then the user selects the OpenGL
graphics mode, getDefaultGraphicsMode() would now return the
OpenGL mode (the default the OpenGLGraphicsManager). As a
result changing the graphics mode back to <default> and
applying the change would not switch back to Surface SDL
until you restart ScummVM or start a game.
This commit also change how the SDL backends can specify which
graphics mode to use by default. They no longer have to assume
they know the names of the graphics modes in the graphics manager.
Different platforms have different levels of support of encodings and
often have slight variations. We already have tables for most encoding
with only CJK missing. Full transcoding inclusion allows us to get reliable
encoding results independently of platform. The biggest con is the need for
external tables encoding.dat.
It removes a duplicate table for korean in graphics/korfont.cpp
- Add comment to tts initialization on Windows
- Correctly free the voicesInfo in linux ttsMan
- Remove popState method from linux-text-to-speech.h and
windows-text-to-speech.h
- Add tts to help in configure
- Refactor language setting in gui-manager.cpp
It counted with english being the default language in
ttsMan constructors, which isn't true anymore.
Because of how cyrilic transliteration and UTF-32 is handled on
Windows, it was unfortunately possible to get into an infinite
loop of conversions. The string would get converted to UTF-32
when transliterating, but because windows backend conversion
cannot convert from UTF-32, it would use Common::Ustr to convert
it to UTF-8, which would again get converted to UTF-32 when
transliterating and so on.
UTF-32 is used in transliteration in Common::Encoding, so it is
pretty important encoding and Windows should be the only thing,
that cannot convert it.
This implementation now matches previous ShellExecute() calls, so we are
now consistent in that regard. It also
silences a warning in Mingw complaining about a type mismatch.