Commit Graph

1180 Commits

Author SHA1 Message Date
Cameron Cawley
1bf1fb40fc
CONFIGURE: Allow building with TinyGL disabled (#2528) 2020-10-14 20:31:22 +02:00
Eugene Sandulenko
7ff34bc9ec PLUGINS: MetaEngineStatic -> MetaEngineDetection 2020-10-11 23:14:39 +02:00
Eugene Sandulenko
7ea6781043 PLUGINS: PLUGIN_TYPE_METAENGINE -> PLUGIN_TYPE_ENGINE_DETECTION 2020-10-11 23:12:32 +02:00
Paweł Kołodziejski
35b9cccbde ALL: Merge ResidualVM 2020-10-09 19:44:13 +02:00
Pawel Kolodziejski
2ecbaef5b5 BASE: Added more information about opengl related features 2020-10-07 11:33:22 +02:00
Pawel Kolodziejski
b05551ec2d BACKEND: Drop bpp param. it was used for grim only. 2020-10-05 14:41:36 +02:00
Pawel Kolodziejski
4631c0e2ed ALL: Sync with ScummVM rev: a4002bdeee 2020-10-04 23:59:26 +02:00
Eugene Sandulenko
b73034e3a0 GUI: Added setting for disabling directory scan at the GUI launch 2020-10-04 18:05:02 +02:00
Pawel Kolodziejski
1f73d401ab BASE: Cleanup cmdline options 2020-10-04 14:43:09 +02:00
Eugene Sandulenko
9590eed4b4 BASE: Upgrade fullpipe engineid to ngi
Making it hardcoded because:
  * This is the only place where it could happen
  * It is the second time in history of ScummVM when we renamed
    and engine (the first one was Simon -> AGOS)

Thus, there is a little sense in creating a universal solution.
2020-10-04 14:17:59 +02:00
aryanrawlani28
ffa69bfb26 GUI: debug statements related to plugins matching -> level 9. 2020-10-03 14:56:36 +02:00
aryanrawlani28
41af1b63a9 BASE: PLUGINS: Improve fb detection for Sci & Wintermute 2020-10-03 14:56:36 +02:00
aryanrawlani28
71a820caff ENGINES: Begin class renaming of ME & AME
- ME -> MetaEngineStatic (static parts)
- MEC -> MetaEngine (dynamic parts)
2020-10-03 14:56:36 +02:00
aryanrawlani28
c48719404a BASE: PLUGINS: Rename plugin matching helpers
- give*From* -> get*From*
2020-10-03 14:56:36 +02:00
aryanrawlani28
a9841622e0 ENGINES: DETECTION: Use inheritance hierarchy and mimic existing plugins. 2020-10-03 14:56:36 +02:00
Eugene Sandulenko
ceabaf3b0d BASE: Added override keywords 2020-10-03 14:56:36 +02:00
aryanrawlani28
ba5368542f BASE: PLUGINS: Update header file & use DETECTION_STATIC def check to build static detection features. 2020-10-03 14:56:36 +02:00
aryanrawlani28
ac900a06b8 BASE: PLUGINS: Use engines/detection_table header for static plugins 2020-10-03 14:56:36 +02:00
aryanrawlani28
fea29b04ac BASE: PLUGINS: Add a plugin suffix only if it is available 2020-10-03 14:56:36 +02:00
aryanrawlani28
7615f37698 BASE: PLUGINS: Add detection tables header file when getting static plugins. 2020-10-03 14:56:36 +02:00
aryanrawlani28
5f5363f03b BASE: MAIN: Load/Unload detection plugin for UncachedPluginMan as/when needed.
- Used only in context of UncachedPluginMan
- Always load on startup
- When starting a game, unload all other MetaEngines except the one needed.
2020-10-03 14:56:36 +02:00
aryanrawlani28
8dfaf6cc0e BASE: PLUGINS: Add support for detection plugins to be loaded on demand.
- Mainly used for UncachedPluginManagers.
- CachedPluginManagers will not handle these, as metaengines will always be available in memory.
2020-10-03 14:56:36 +02:00
aryanrawlani28
b78534dcb0 BASE: PLUGINS: Seperate declaration/definition of StaticPlugins.
- Move declarations inside plugins.h to make it visible to detection/detection.cpp
2020-10-03 14:56:36 +02:00
aryanrawlani28
408158edc9 BASE: PLUGINS: Add a new type of plugin - DETECTION. 2020-10-03 14:56:36 +02:00
aryanrawlani28
53f08789eb BASE: PLUGINS: Restore functionalities of uncached plugin manager for the new changes. 2020-10-03 14:56:36 +02:00
aryanrawlani28
84ddd3ac88 BASE: PLUGINS: Remove comments referring to old game detection 2020-10-03 14:56:36 +02:00
aryanrawlani28
0cc8719417 BASE: ENGINES: Adapt to keymaps moving to engine plugins
- Also improvise usage of MetaEngineConnect in main.cpp a bit.
2020-10-03 14:56:36 +02:00
aryanrawlani28
9353e339c6 BASE: MAIN: Proper usage of unloadPluginsExcept before running a game. 2020-10-03 14:56:36 +02:00
aryanrawlani28
bdafdf220d BASE: PLUGINS: Deprecate improper usage of unloadPluginsExcept 2020-10-03 14:56:36 +02:00
aryanrawlani28
73cc973ad7 BASE: ENGINES: Change saveload code to adapt to the new MEC class.
- MEC: MetaEngineConnect.
- How do games handle save/load if MetaEngine (detection) is seperate from MetaEngineConnect (engine factory)?

- Most of the changes are quite similiar. ConfMan finds us the relevant MetaEngine, then simply use the new helpers from PluginMan.
- The new helpers will help convert a relevant MetaEngine into the other format or vice versa.
- Once the matching is complete, simply invoke functions by:
plugin->get<MetaEngineConnect>().engineMethod();
- Refer to previous commits to see the new class changes & notes.
2020-10-03 14:56:36 +02:00
aryanrawlani28
39f5c93c5c BASE: PLUGINS: Bump PLUGIN_TYPE_ENGINE_VERSION to 2
- Because of the many changes happening to engine classes, it would be a good idea to update the version, something similiar was done with themes.
2020-10-03 14:56:36 +02:00
aryanrawlani28
50e9f0d875 BASE: PLUGINS: Add helper methods which match MetaEngine to Engine & vice-versa 2020-10-03 14:56:36 +02:00
aryanrawlani28
f2dd03e7d8 BASE: PLUGINS: Implement a getEngineId for PluginObjects, return nullptr by default.
- See comments.
2020-10-03 14:56:36 +02:00
aryanrawlani28
575e77522a BASE: MAIN: Change how running games works.
- In runGame(), in main.cpp, we get a plugin of type MetaEngine.
- This MetaEngine cannot createInstances, but it just a helper class.
- Connect a MetaEngine class with it's factory class - MetaEngineConnect.
- Then, simply call the method.
2020-10-03 14:56:36 +02:00
aryanrawlani28
943df64b32 ENGINES: Change behaviour of EngineMan::getPlugins.
- Changed so we can get any type of plugins.
- This used to always return PLUGIN_TYPE_ENGINE.
- Because now we can differentiate between engines and metaengine, this must be changed.
- For now, return METAENGINE by default
2020-10-03 14:56:36 +02:00
aryanrawlani28
f07bdb100e BASE: PLUGINS: Implement unloadPluginsExcept correctly
- The new implementation matchs a plugin from type MetaEngine to an Engine, and unloads every else ENGINE.
2020-10-03 14:56:36 +02:00
aryanrawlani28
09c1e1e07d BASE: Change how game detection works.
- Do NOT use pluginMan and load plugins, etc, etc.
- Get MetaEngines from memory, since they're always built in statically.
- Use detectGames method to detect games.
2020-10-03 14:56:36 +02:00
aryanrawlani28
6689fa740a BASE: PLUGINS: Add a new type of plugin - MetaEngine
- MetaEngines will now always go to the executable.
- But, because they still live in engine projects and are connected via a macro, they will need to be differentiated from Engines.
- This macro, and it's use in future will help in that.
2020-10-03 14:56:36 +02:00
aryanrawlani28
a8d5168a35 PLUGINS: Add a ease-use macro - PLUGIN_ENABLED 2020-10-03 14:56:36 +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
Pawel Kolodziejski
6f69981904 BACKENDS: Drop launcherInitSize() and use 2d backend gfx manager for launcher. 2020-09-30 16:52:44 +02:00
Pawel Kolodziejski
2b248a85bf ALL: Minimise differences with ScummVM 2020-09-29 07:57:40 +02:00
Pawel Kolodziejski
bfe58d3c77 ALL: Synced with ScummVM - rev: d4db631f9b 2020-09-23 21:52:10 +02:00
Lothar Serra Mari
51c42478d2 BASE: WIN32: Exclude scummvm's base directory from plugin path
Currently, the plugin architecture searches for plugins in ScummVM's
base directory and in the plugins directory itself.

However, for Win32, we need to bundle several DLL files in order to
make ScummVM run at all. Currently, this leads to several warning
messages since ScummVM tries to load those DLLs as plugins.

This patch excludes the ScummVM base directory when running on Win32 and
only accepts plugins from the plugins directory.
2020-09-13 18:03:16 +02:00
Pawel Kolodziejski
15a759370a ALL: Synced with ScummVM - rev: bdbbcd81ae 2020-09-12 19:38:50 +02:00
Pawel Kolodziejski
d5304e2568 ALL: Synced with ScummVM - rev: 33a47d23b8 2020-09-03 02:21:14 +02:00
Thierry Crozat
1dfbb0cc4c BASE: Add c++11 unicode string literal test 2020-09-01 01:33:39 +01:00
aryanrawlani28
01176e43f7 GUI: U32: Use unicode based generateGameReport correctly in all places
- UnknownGameDialog: Use u32 for gameReport dependant functions
2020-08-30 14:43:41 +02:00
aryanrawlani28
68d01321d6 GUI: U32: Downscale changes of U32, fix review issues
This commit addresses a range of changes, within scummvm subproject.

- Audio files, like mididrv, remove U32String based name and identifier, because ASCII only.
- mididrv.cpp had some wrong format for warning messages, fix those
- Message dialogs were modified to use default arguments more often, but reverting back to the orignal to minimize changes.
- SetTooltip has a fake constructor that takes in a string, and use it.
- U32Format had some break statements missing, add those.
- RemapWidget: Use fake constructor for setLabel and setTooltip, to make minimal changes
- SDL: setting text in clipboard no longer uses SDL_iconv_string
- TTS: Override base class "say" with strings, so tts->say can be used with normal strings too.
- About dialog: fix incorrect code for u32string variables
- Fix some extra brackets
- Some buttons were incorrectly removed from using translated labels, revert those
- Message Dialog: Pass default and alt buttons as const references
- Saveload Dialog: Use translations in missing places, use const-references. Also, use translations in a correct manner.
- Use const references for tooltip in GraphicsWidget, EditTextWidget, error.cpp
- DomainEditTextWidget: Use U32String for text
2020-08-30 14:43:41 +02:00
aryanrawlani28
4b6976c558 GUI: U32: Reduce number of files changed and fixes
Up until last commit, everything was working fine but the amount of files changed was too large. This commit tries to reduce the changes.

- Add a fake constructor to Keymap, text-to-speech, setDescription (save-state)
- Redirecting functions for PopUpWidget::appendEntry, ButtonWidget::setLabel, GUIErrorMessage
- Use the above functions and constructors to reduce changes in Engines
- Fix warnings being in unicode. Only output english text in - Warnings, Errors, etc.
- Mark some strings as "translation" strings. (Not yet added to POTFILES)
- Remove some CP related things from po/modules.mk
- Previously used some Common::convertToU32 where it was not necessary, replace this with u32constructor
2020-08-30 14:43:41 +02:00