ScummVM API documentation
OSystem Class Referenceabstract

#include <system.h>

Inheritance diagram for OSystem:

Classes

struct  GraphicsMode
 

Public Types

enum  Feature {
  kFeatureFullscreenMode, kFeatureAspectRatioCorrection, kFeatureFilteringMode, kFeatureStretchMode,
  kFeatureVirtualKeyboard, kFeatureCursorPalette, kFeatureOverlaySupportsAlpha, kFeatureIconifyWindow,
  kFeatureOpenGLForGame, kFeatureVSync, kFeatureFullscreenToggleKeepsContext, kFeatureDisplayLogFile,
  kFeatureClipboardSupport, kFeatureOpenUrl, kFeatureOnScreenControl, kFeatureTouchpadMode,
  kFeatureSwapMenuAndBackButtons, kFeatureKbdMouseSpeed, kFeatureJoystickDeadzone, kFeatureShader,
  kFeatureSystemBrowserDialog, kFeatureNoQuit
}
 
enum  GfxModeFlags { kGfxModeNoFlags = 0, kGfxModeRender3d = (1 << 0) }
 
enum  TransactionError {
  kTransactionSuccess = 0, kTransactionAspectRatioFailed = (1 << 0), kTransactionFullscreenFailed = (1 << 1), kTransactionModeSwitchFailed = (1 << 2),
  kTransactionSizeChangeFailed = (1 << 3), kTransactionFormatNotSupported = (1 << 4), kTransactionFilteringFailed = (1 << 5), kTransactionStretchModeSwitchFailed = (1 << 6)
}
 
typedef struct OpaqueMutex * MutexRef
 

Public Member Functions

void destroy ()
 
virtual void init ()
 
virtual void initBackend ()
 
bool backendInitialized () const
 
virtual void engineInit ()
 
virtual void engineDone ()
 
virtual bool hasFeature (Feature f)
 
virtual void setFeatureState (Feature f, bool enable)
 
virtual bool getFeatureState (Feature f)
 
virtual const GraphicsModegetSupportedGraphicsModes () const
 
virtual int getDefaultGraphicsMode () const
 
virtual bool setGraphicsMode (int mode, uint flags=kGfxModeNoFlags)
 
bool setGraphicsMode (const char *name)
 
virtual int getGraphicsMode () const
 
virtual void resetGraphicsScale ()
 
Graphics::PixelFormat getScreenFormat () const
 
Common::List< Graphics::PixelFormat > getSupportedFormats () const
 
virtual Common::Array< uint > getSupportedAntiAliasingLevels () const
 
virtual const GraphicsModegetSupportedShaders () const
 
virtual int getDefaultShader () const
 
virtual bool setShader (int id)
 
bool setShader (const char *name)
 
virtual int getShader () const
 
virtual const GraphicsModegetSupportedStretchModes () const
 
virtual int getDefaultStretchMode () const
 
virtual bool setStretchMode (int mode)
 
bool setStretchMode (const char *name)
 
virtual int getStretchMode () const
 
virtual void initSize (uint width, uint height, const Graphics::PixelFormat *format=nullptr)=0
 
virtual void initSizeHint (const Graphics::ModeList &modes)
 
virtual int getScreenChangeID () const
 
virtual void beginGFXTransaction ()
 
virtual TransactionError endGFXTransaction ()
 
virtual int16 getHeight ()=0
 
virtual int16 getWidth ()=0
 
virtual PaletteManager * getPaletteManager ()=0
 
virtual void copyRectToScreen (const void *buf, int pitch, int x, int y, int w, int h)=0
 
virtual Graphics::Surface * lockScreen ()=0
 
virtual void unlockScreen ()=0
 
virtual void fillScreen (uint32 col)=0
 
virtual void updateScreen ()=0
 
virtual void setShakePos (int shakeXOffset, int shakeYOffset)=0
 
virtual void setFocusRectangle (const Common::Rect &rect)
 
virtual void clearFocusRectangle ()
 
virtual void saveScreenshot ()
 
virtual void showOverlay ()=0
 
virtual void hideOverlay ()=0
 
virtual bool isOverlayVisible () const =0
 
virtual Graphics::PixelFormat getOverlayFormat () const =0
 
virtual void clearOverlay ()=0
 
virtual void grabOverlay (void *buf, int pitch)=0
 
virtual void copyRectToOverlay (const void *buf, int pitch, int x, int y, int w, int h)=0
 
virtual int16 getOverlayHeight ()=0
 
virtual int16 getOverlayWidth ()=0
 
virtual bool showMouse (bool visible)=0
 
virtual bool lockMouse (bool lock)
 
virtual void warpMouse (int x, int y)=0
 
virtual void setMouseCursor (const void *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, bool dontScale=false, const Graphics::PixelFormat *format=nullptr)=0
 
virtual void setCursorPalette (const byte *colors, uint start, uint num)
 
virtual uint32 getMillis (bool skipRecord=false)=0
 
virtual void delayMillis (uint msecs)=0
 
virtual void getTimeAndDate (TimeDate &t) const =0
 
virtual Common::TimerManager * getTimerManager ()
 
Common::EventManager * getEventManager ()
 
virtual Common::HardwareInputSet * getHardwareInputSet ()
 
virtual Common::KeymapArray getGlobalKeymaps ()
 
virtual Common::KeymapperDefaultBindings * getKeymapperDefaultBindings ()
 
virtual MutexRef createMutex ()=0
 
virtual void lockMutex (MutexRef mutex)=0
 
virtual void unlockMutex (MutexRef mutex)=0
 
virtual void deleteMutex (MutexRef mutex)=0
 
virtual Audio::Mixer * getMixer ()=0
 
AudioCDManager * getAudioCDManager ()
 
virtual void quit ()=0
 
virtual void fatalError ()
 
virtual void setWindowCaption (const char *caption)
 
virtual void displayMessageOnOSD (const Common::U32String &msg)=0
 
virtual void displayActivityIconOnOSD (const Graphics::Surface *icon)=0
 
virtual Common::SaveFileManager * getSavefileManager ()
 
virtual Common::TaskbarManager * getTaskbarManager ()
 
virtual Common::UpdateManager * getUpdateManager ()
 
virtual Common::TextToSpeechManager * getTextToSpeechManager ()
 
virtual Common::DialogManager * getDialogManager ()
 
virtual FilesystemFactory * getFilesystemFactory ()
 
virtual void addSysArchivesToSearchSet (Common::SearchSet &s, int priority=0)
 
virtual Common::SeekableReadStreamcreateConfigReadStream ()
 
virtual Common::WriteStreamcreateConfigWriteStream ()
 
virtual Common::String getDefaultConfigFileName ()
 
virtual void logMessage (LogMessageType::Type type, const char *message)=0
 
virtual bool displayLogFile ()
 
virtual bool hasTextInClipboard ()
 
virtual Common::U32String getTextFromClipboard ()
 
virtual bool setTextInClipboard (const Common::U32String &text)
 
virtual bool openUrl (const Common::String &url)
 
virtual Common::String getSystemLanguage () const
 
virtual bool isConnectionLimited ()
 

Protected Member Functions

virtual char * convertEncoding (const char *to, const char *from, const char *string, size_t length)
 

Protected Attributes

AudioCDManager * _audiocdManager
 
Common::EventManager * _eventManager
 
Common::TimerManager * _timerManager
 
Common::SaveFileManager * _savefileManager
 
Common::TaskbarManager * _taskbarManager
 
Common::UpdateManager * _updateManager
 
Common::TextToSpeechManager * _textToSpeechManager
 
Common::DialogManager * _dialogManager
 
FilesystemFactory * _fsFactory
 
Common::U32String _clipboard
 
bool _dummyUnused
 

Friends

class Common::Encoding
 

Detailed Description

Interface for ScummVM backends.

If you want to port ScummVM to a system that is not currently covered by any of our backends, this is the place to start. ScummVM will create an instance of a subclass of this interface and use it to interact with the system.

In particular, a backend provides:

  • A video surface for ScummVM to draw in
  • Methods to create timers
  • Methods to handle user input events
  • Control audio CD playback
  • Sound output

Member Function Documentation

◆ destroy()

void OSystem::destroy ( )

Destoy this OSystem instance.

◆ init()

virtual void OSystem::init ( )
inlinevirtual

Call this method once, after g_system is created.

◆ initBackend()

virtual void OSystem::initBackend ( )
virtual

The following method is called once, from main.cpp, after all config data (including command line params etc.) is fully loaded.

Note
Subclasses should always invoke the implementation of their parent class. They should do so near the end of their own implementation.

◆ backendInitialized()

bool OSystem::backendInitialized ( ) const
inline

Return false if initBackend() has not yet been called and true otherwise.

Some functionalities such as mutexes cannot be used until the backend is initialized.

◆ engineInit()

virtual void OSystem::engineInit ( )
inlinevirtual

Allow the backend to perform engine-specific initialization.

Called just before the engine is run.

◆ engineDone()

virtual void OSystem::engineDone ( )
inlinevirtual

Allow the backend to perform engine-specific deinitialization.

Called after the engine finishes.


The documentation for this class was generated from the following file: