22#ifndef COMMON_SYSTEM_H
23#define COMMON_SYSTEM_H
25#include "common/scummsys.h"
26#include "common/noncopyable.h"
27#include "common/array.h"
28#include "common/list.h"
29#include "common/ustr.h"
30#include "common/str-array.h"
31#include "common/hash-str.h"
32#include "common/path.h"
33#include "common/log.h"
34#include "common/frac.h"
35#include "graphics/pixelformat.h"
36#include "graphics/mode.h"
37#include "graphics/opengl/context.h"
50class OptionsContainerWidget;
64#if defined(USE_TASKBAR)
67#if defined(USE_UPDATES)
70class TextToSpeechManager;
71#if defined(USE_SYSDIALOGS)
76class SeekableReadStream;
78class HardwareInputSet;
80class KeymapperDefaultBindings;
84typedef Array<Keymap *> KeymapArray;
142#if defined(USE_IMGUI)
143typedef struct ImGuiCallbacks {
144 void (*init)() =
nullptr;
145 void (*render)() =
nullptr;
146 void (*cleanup)() =
nullptr;
225#if defined(USE_TASKBAR)
231 Common::TaskbarManager *_taskbarManager;
234#if defined(USE_UPDATES)
240 Common::UpdateManager *_updateManager;
250#if defined(USE_SYSDIALOGS)
297 bool _backendInitialized;
775 static const GraphicsMode noGraphicsModes[] = {{
"NONE",
"Normal", 0}, {
nullptr,
nullptr, 0 }};
776 return noGraphicsModes;
902 return OpenGL::kContextNone;
905#if defined(USE_OPENGL) && defined(USE_GLAD)
917 virtual void *getOpenGLProcAddress(
const char *name)
const {
return nullptr; }
920#if defined(USE_IMGUI)
928 virtual void setImGuiCallbacks(
const ImGuiCallbacks &callbacks) {}
938 virtual void *getImGuiTexture(
const Graphics::Surface &image,
const byte *palette =
nullptr,
int palCount = 0) {
return nullptr; }
944 virtual void freeImGuiTexture(
void *texture) {}
968 static const GraphicsMode noStretchModes[] = {{
"NONE",
"Normal", 0}, {
nullptr,
nullptr, 0 }};
969 return noStretchModes;
1071 virtual bool setScaler(uint mode,
int factor) {
return false; }
1084 virtual bool setScaler(
const char *name,
int factor) {
return false; }
1783#if defined(USE_TASKBAR)
1790 virtual Common::TaskbarManager *getTaskbarManager() {
1791 return _taskbarManager;
1795#if defined(USE_UPDATES)
1802 virtual Common::UpdateManager *getUpdateManager() {
1803 return _updateManager;
1825#if defined(USE_SYSDIALOGS)
Definition: keymapper-defaults.h:32
void push_back(const t_T &element)
Definition: list.h:174
Definition: noncopyable.h:39
Definition: printman.h:41
Definition: savefile.h:142
Definition: archive.h:330
Definition: text-to-speech.h:150
Definition: fs-factory.h:31
Definition: cursorman.h:43
virtual void initBackend()
virtual void engineDone()
Definition: system.h:343
virtual void engineInit()
Definition: system.h:336
virtual void init()
Definition: system.h:311
bool backendInitialized() const
Definition: system.h:329
Task
Definition: system.h:348
virtual void updateStartSettings(const Common::String &executable, Common::String &command, Common::StringMap &startSettings, Common::StringArray &additionalArgs)
virtual void taskFinished(Task)
Definition: system.h:373
virtual void taskStarted(Task)
Definition: system.h:368
Definition: paletteman.h:47
int32 frac_t
Definition: frac.h:52
RotationMode
Definition: rotationmode.h:44
AudioCDManager * getAudioCDManager()
Definition: system.h:1701
virtual Common::KeymapperDefaultBindings * getKeymapperDefaultBindings()
Definition: system.h:1640
virtual void getTimeAndDate(TimeDate &td, bool skipRecord=false) const =0
virtual uint32 getMillis(bool skipRecord=false)=0
virtual Common::TimerManager * getTimerManager()
virtual void delayMillis(uint msecs)=0
Common::EventManager * getEventManager()
Definition: system.h:1609
virtual Common::HardwareInputSet * getHardwareInputSet()
Definition: system.h:1620
virtual Common::KeymapArray getGlobalKeymaps()
Definition: system.h:1631
virtual bool getFeatureState(Feature f)
Definition: system.h:667
Feature
Definition: system.h:415
virtual bool hasFeature(Feature f)
Definition: system.h:652
virtual void setFeatureState(Feature f, bool enable)
Definition: system.h:660
@ kFeatureIconifyWindow
Definition: system.h:508
@ kFeatureDisplayLogFile
Definition: system.h:535
@ kFeatureClipboardSupport
Definition: system.h:548
@ kFeatureStretchMode
Definition: system.h:449
@ kFeatureVirtualKeyboard
Definition: system.h:456
@ kFeatureCursorMaskPaletteXorColorXnor
Definition: system.h:493
@ kFeatureFilteringMode
Definition: system.h:444
@ kFeatureShadersForGame
Definition: system.h:520
@ kFeatureFullscreenMode
Definition: system.h:420
@ kFeatureRotationMode
Definition: system.h:636
@ kFeatureCpuSSE2
Definition: system.h:615
@ kFeatureCursorMask
Definition: system.h:480
@ kFeatureSystemBrowserDialog
Definition: system.h:592
@ kFeatureTouchscreen
Definition: system.h:604
@ kFeatureNoQuit
Definition: system.h:597
@ kFeatureCpuNEON
Definition: system.h:610
@ kFeatureAspectRatioCorrection
Definition: system.h:438
@ kFeatureOpenUrl
Definition: system.h:556
@ kFeatureTouchpadMode
Definition: system.h:561
@ kFeatureJoystickDeadzone
Definition: system.h:571
@ kFeatureCursorAlpha
Definition: system.h:474
@ kFeatureCursorMaskInvert
Definition: system.h:486
@ kFeatureCpuAVX2
Definition: system.h:625
@ kFeatureKbdMouseSpeed
Definition: system.h:566
@ kFeatureCpuAltivec
Definition: system.h:631
@ kFeatureCpuSSE41
Definition: system.h:620
@ kFeatureStaleMousePositionWorkaround
Definition: system.h:646
@ kFeatureOverlaySupportsAlpha
Definition: system.h:502
@ kFeatureScalers
Definition: system.h:576
@ kFeatureCursorPalette
Definition: system.h:468
@ kFeatureVSync
Definition: system.h:527
@ kFeatureDLC
Definition: system.h:586
@ kFeatureShaders
Definition: system.h:581
@ kFeatureOpenGLForGame
Definition: system.h:514
virtual const GraphicsMode * getSupportedGraphicsModes() const
Definition: system.h:774
virtual TransactionError endGFXTransaction()
Definition: system.h:1209
virtual OpenGL::ContextType getOpenGLType() const
Definition: system.h:901
virtual int16 getWidth()=0
virtual void initSizeHint(const Graphics::ModeList &modes)
Definition: system.h:1141
virtual int getGraphicsMode() const
Definition: system.h:829
virtual const GraphicsMode * getSupportedStretchModes() const
Definition: system.h:967
virtual bool setShader(const Common::Path &fileName)
Definition: system.h:956
virtual int16 getHeight()=0
virtual bool setScaler(uint mode, int factor)
Definition: system.h:1071
virtual void setShakePos(int shakeXOffset, int shakeYOffset)=0
virtual int getDefaultStretchMode() const
Definition: system.h:981
virtual void setFocusRectangle(const Common::Rect &rect)
Definition: system.h:1358
TransactionError
Definition: system.h:1188
virtual PaletteManager * getPaletteManager()=0
virtual uint getScaleFactor() const
Definition: system.h:1098
virtual bool setRotationMode(Common::RotationMode rotation)
Definition: system.h:1026
virtual Graphics::Surface * lockScreen()=0
virtual void beginGFXTransaction()
Definition: system.h:1177
virtual void clearFocusRectangle()
Definition: system.h:1368
virtual void updateScreen()=0
virtual void presentBuffer()
Definition: system.h:1321
virtual Common::Array< uint > getSupportedAntiAliasingLevels() const
Definition: system.h:887
virtual float getHiDPIScreenFactor() const
Definition: system.h:1240
virtual bool setGraphicsMode(int mode, uint flags=kGfxModeNoFlags)
Definition: system.h:807
virtual void initSize(uint width, uint height, const Graphics::PixelFormat *format=nullptr)=0
virtual uint getDefaultScaler() const
Definition: system.h:1048
virtual uint getDefaultScaleFactor() const
Definition: system.h:1059
virtual int getScreenChangeID() const
Definition: system.h:1157
virtual void copyRectToScreen(const void *buf, int pitch, int x, int y, int w, int h)=0
virtual void unlockScreen()=0
virtual int getStretchMode() const
Definition: system.h:1015
virtual void saveScreenshot()
Definition: system.h:1375
virtual bool setScaler(const char *name, int factor)
Definition: system.h:1084
virtual void fillScreen(const Common::Rect &r, uint32 col)=0
bool setGraphicsMode(const char *name)
GfxModeFlags
Definition: system.h:789
bool setRotationMode(int rotation)
virtual void fillScreen(uint32 col)=0
virtual uint getScaler() const
Definition: system.h:1091
virtual bool setStretchMode(int mode)
Definition: system.h:992
virtual int getDefaultGraphicsMode() const
Definition: system.h:787
bool setStretchMode(const char *name)
@ kTransactionStretchModeSwitchFailed
Definition: system.h:1196
@ kTransactionVSyncFailed
Definition: system.h:1198
@ kTransactionModeSwitchFailed
Definition: system.h:1192
@ kTransactionAspectRatioFailed
Definition: system.h:1190
@ kTransactionSuccess
Definition: system.h:1189
@ kTransactionFilteringFailed
Definition: system.h:1195
@ kTransactionFormatNotSupported
Definition: system.h:1194
@ kTransactionShaderChangeFailed
Definition: system.h:1197
@ kTransactionFullscreenFailed
Definition: system.h:1191
@ kTransactionSizeChangeFailed
Definition: system.h:1193
@ kGfxModeNoFlags
Definition: system.h:790
@ kGfxModeRender3d
Definition: system.h:791
virtual void fatalError()
const char * name
Definition: system.h:748
int id
Definition: system.h:761
virtual void displayActivityIconOnOSD(const Graphics::Surface *icon)=0
virtual Common::WriteStream * createConfigWriteStream()
virtual GUI::OptionsContainerWidget * buildBackendOptionsWidget(GUI::GuiObject *boss, const Common::String &name, const Common::String &target) const
Definition: system.h:1924
virtual void setWindowCaption(const Common::U32String &caption)
Definition: system.h:1730
virtual Common::String getSystemLanguage() const
virtual void applyBackendSettings()
Definition: system.h:1943
virtual void messageBox(LogMessageType::Type type, const char *message)
Definition: system.h:1965
virtual Common::U32String getTextFromClipboard()
Definition: system.h:2014
virtual bool openUrl(const Common::String &url)
Definition: system.h:2039
virtual void registerDefaultSettings(const Common::String &target) const
Definition: system.h:1909
virtual bool isConnectionLimited()
virtual void logMessage(LogMessageType::Type type, const char *message)=0
@ kCloudDownload
Definition: system.h:357
@ kDataPackDownload
Definition: system.h:362
@ kLocalServer
Definition: system.h:352
virtual Common::Path getDefaultLogFileName()
Definition: system.h:1901
virtual void displayMessageOnOSD(const Common::U32String &msg)=0
virtual const char *const * buildHelpDialogData()
Definition: system.h:1936
virtual void addSysArchivesToSearchSet(Common::SearchSet &s, int priority)
virtual bool hasTextInClipboard()
Definition: system.h:2003
virtual bool setTextInClipboard(const Common::U32String &text)
Definition: system.h:2025
virtual Common::SeekableReadStream * createConfigReadStream()
virtual bool displayLogFile()
Definition: system.h:1992
virtual Common::Path getDefaultConfigFileName()
const char * description
Definition: system.h:754
Common::PrintingManager * _printingManager
Definition: system.h:275
FilesystemFactory * _fsFactory
Definition: system.h:268
virtual Common::TextToSpeechManager * getTextToSpeechManager()
Definition: system.h:1812
virtual Common::SaveFileManager * getSavefileManager()
Common::U32String _clipboard
Definition: system.h:286
bool _dummyUnused
Definition: system.h:291
AudioCDManager * _audiocdManager
Definition: system.h:202
virtual FilesystemFactory * getFilesystemFactory()
Common::DialogManager * _dialogManager
Definition: system.h:256
Common::TextToSpeechManager * _textToSpeechManager
Definition: system.h:248
virtual Common::DialogManager * getDialogManager()
Definition: system.h:1831
DLC::Store * _dlcStore
Definition: system.h:280
Common::EventManager * _eventManager
Definition: system.h:209
Common::SaveFileManager * _savefileManager
Definition: system.h:223
Common::TimerManager * _timerManager
Definition: system.h:216
virtual Common::PrintingManager * getPrintingManager()
Definition: system.h:1821
virtual DLC::Store * getDLCStore()
Definition: system.h:1841
virtual void setMouseCursor(const void *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, const Graphics::PixelFormat *format, const byte *mask, frac_t scaleX, frac_t scaleY)=0
virtual void setCursorPalette(const byte *colors, uint start, uint num)
Definition: system.h:1544
virtual uint32 getDoubleClickTime() const
Definition: system.h:1566
virtual bool showMouse(bool visible)=0
virtual void warpMouse(int x, int y)=0
virtual bool lockMouse(bool lock)
Definition: system.h:1551
virtual Common::MutexInternal * createMutex()=0
virtual void hideOverlay()=0
virtual Common::Rect getSafeOverlayArea(int16 *width=nullptr, int16 *height=nullptr) const
virtual void copyRectToOverlay(const void *buf, int pitch, int x, int y, int w, int h)=0
virtual Graphics::PixelFormat getOverlayFormat() const =0
virtual bool isOverlayVisible() const =0
virtual void grabOverlay(Graphics::Surface &surface)=0
virtual int16 getOverlayHeight() const =0
virtual void clearOverlay()=0
virtual void showOverlay(bool inGUI=true)=0
virtual int16 getOverlayWidth() const =0
virtual Audio::Mixer * getMixer()=0
CursorMaskValue
Definition: system.h:124
@ kCursorMaskOpaque
Definition: system.h:129
@ kCursorMaskTransparent
Definition: system.h:126
@ kCursorMaskPaletteXorColorXnor
Definition: system.h:139
@ kCursorMaskInvert
Definition: system.h:133
Definition: algorithm.h:29
Definition: formatinfo.h:28
int tm_year
Definition: system.h:117
int tm_mon
Definition: system.h:116
int tm_wday
Definition: system.h:118
int tm_mday
Definition: system.h:115
int tm_sec
Definition: system.h:112
int tm_min
Definition: system.h:113
int tm_hour
Definition: system.h:114