ScummVM API documentation
OSystem_libretro Class Reference
Inheritance diagram for OSystem_libretro:
BaseBackend Common::EventSource ModularGraphicsBackend OSystem BaseBackend Common::NonCopyable OSystem Common::NonCopyable

Public Member Functions

void initBackend (void) override
 
void engineInit (void) override
 
void refreshRetroSettings (void)
 
void refreshScreen (void)
 
void destroy (void)
 
void quit () override
 
void resetGraphicsManager (void)
 
void getScreen (const Graphics::ManagedSurface *&screen)
 
int16 getScreenWidth (void)
 
int16 getScreenHeight (void)
 
bool inLauncher (void)
 
bool pollEvent (Common::Event &event) override
 
uint32 getMillis (bool skipRecord=false) override
 
void delayMillis (uint msecs) override
 
Common::MutexInternal * createMutex (void) override
 
void requestQuit (void)
 
void resetQuit (void)
 
void setMousePosition (int x, int y)
 
void getTimeAndDate (TimeDate &t, bool skipRecord) const override
 
Audio::Mixer * getMixer (void) override
 
Common::Path getDefaultConfigFileName (void) override
 
void logMessage (LogMessageType::Type type, const char *message) override
 
bool hasFeature (Feature f) override
 
bool openUrl (const Common::String &url) override
 
int testGame (const char *filedata, bool autodetect)
 
void addSysArchivesToSearchSet (Common::SearchSet &s, int priority=0) override
 
const char *const * buildHelpDialogData () override
 
Common::String getSaveDir (void)
 
GUI::OptionsContainerWidget * buildBackendOptionsWidget (GUI::GuiObject *boss, const Common::String &name, const Common::String &target) const override
 
void applyBackendSettings () override
 
void processInputs (void)
 
void processKeyEvent (bool down, unsigned keycode, uint32 character, uint16 key_modifiers)
 
void initBackend () override
 
bool setScaler (const char *name, int factor) override final
 
void displayMessageOnOSD (const Common::U32String &msg) override
 
void displayActivityIconOnOSD (const Graphics::Surface *icon) override
 
void fillScreen (uint32 col) override
 
void fillScreen (const Common::Rect &r, uint32 col) override
 
virtual bool setScaler (uint mode, int factor)
 
virtual bool setScaler (const char *name, int factor)
 
- Public Member Functions inherited from OSystem
void destroy ()
 
virtual void init ()
 
virtual void initBackend ()
 
bool backendInitialized () const
 
virtual void engineInit ()
 
virtual void engineDone ()
 
virtual void taskStarted (Task)
 
virtual void taskFinished (Task)
 
virtual void updateStartSettings (const Common::String &executable, Common::String &command, Common::StringMap &startSettings, Common::StringArray &additionalArgs)
 
virtual bool hasFeature (Feature f)
 
virtual void setFeatureState (Feature f, bool enable)
 
virtual bool getFeatureState (Feature f)
 
virtual const GraphicsMode * getSupportedGraphicsModes () const
 
virtual int getDefaultGraphicsMode () const
 
virtual bool setGraphicsMode (int mode, uint flags=kGfxModeNoFlags)
 
bool setGraphicsMode (const char *name)
 
virtual int getGraphicsMode () const
 
Graphics::PixelFormat getScreenFormat () const
 
Common::List< Graphics::PixelFormat > getSupportedFormats () const
 
virtual Common::Array< uint > getSupportedAntiAliasingLevels () const
 
virtual OpenGL::ContextType getOpenGLType () const
 
virtual bool setShader (const Common::Path &fileName)
 
virtual const GraphicsMode * getSupportedStretchModes () const
 
virtual int getDefaultStretchMode () const
 
virtual bool setStretchMode (int mode)
 
bool setStretchMode (const char *name)
 
virtual int getStretchMode () const
 
virtual bool setRotationMode (Common::RotationMode rotation)
 
bool setRotationMode (int rotation)
 
virtual uint getDefaultScaler () const
 
virtual uint getDefaultScaleFactor () const
 
virtual bool setScaler (uint mode, int factor)
 
virtual bool setScaler (const char *name, int factor)
 
virtual uint getScaler () const
 
virtual uint getScaleFactor () 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 float getHiDPIScreenFactor () const
 
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 fillScreen (const Common::Rect &r, uint32 col)=0
 
virtual void updateScreen ()=0
 
virtual void presentBuffer ()
 
virtual void setShakePos (int shakeXOffset, int shakeYOffset)=0
 
virtual void setFocusRectangle (const Common::Rect &rect)
 
virtual void clearFocusRectangle ()
 
virtual void saveScreenshot ()
 
virtual void showOverlay (bool inGUI=true)=0
 
virtual void hideOverlay ()=0
 
virtual bool isOverlayVisible () const =0
 
virtual Graphics::PixelFormat getOverlayFormat () const =0
 
virtual void clearOverlay ()=0
 
virtual void grabOverlay (Graphics::Surface &surface)=0
 
virtual void copyRectToOverlay (const void *buf, int pitch, int x, int y, int w, int h)=0
 
virtual int16 getOverlayHeight () const =0
 
virtual int16 getOverlayWidth () const =0
 
virtual Common::Rect getSafeOverlayArea (int16 *width=nullptr, int16 *height=nullptr) const
 
virtual bool lockMouse (bool lock)
 
virtual void warpMouse (int x, int y)=0
 
virtual uint32 getDoubleClickTime () const
 
virtual uint32 getMillis (bool skipRecord=false)=0
 
virtual void delayMillis (uint msecs)=0
 
virtual void getTimeAndDate (TimeDate &td, bool skipRecord=false) const =0
 
virtual Common::TimerManager * getTimerManager ()
 
Common::EventManager * getEventManager ()
 
virtual Common::HardwareInputSet * getHardwareInputSet ()
 
virtual Common::KeymapArray getGlobalKeymaps ()
 
virtual Common::KeymapperDefaultBindings * getKeymapperDefaultBindings ()
 
virtual Common::MutexInternal * createMutex ()=0
 
virtual Audio::Mixer * getMixer ()=0
 
AudioCDManager * getAudioCDManager ()
 
virtual void quit ()=0
 
virtual void fatalError ()
 
virtual void setWindowCaption (const Common::U32String &caption)
 
virtual void displayMessageOnOSD (const Common::U32String &msg)=0
 
virtual void displayActivityIconOnOSD (const Graphics::Surface *icon)=0
 
virtual Common::SaveFileManager * getSavefileManager ()
 
virtual Common::TextToSpeechManager * getTextToSpeechManager ()
 
virtual Common::PrintingManager * getPrintingManager ()
 
virtual Common::DialogManager * getDialogManager ()
 
virtual DLC::Store * getDLCStore ()
 
virtual FilesystemFactory * getFilesystemFactory ()
 
virtual void addSysArchivesToSearchSet (Common::SearchSet &s, int priority)
 
virtual Common::SeekableReadStream * createConfigReadStream ()
 
virtual Common::WriteStream * createConfigWriteStream ()
 
virtual Common::Path getDefaultConfigFileName ()
 
virtual Common::Path getDefaultLogFileName ()
 
virtual void registerDefaultSettings (const Common::String &target) const
 
virtual GUI::OptionsContainerWidget * buildBackendOptionsWidget (GUI::GuiObject *boss, const Common::String &name, const Common::String &target) const
 
virtual const char *const * buildHelpDialogData ()
 
virtual void applyBackendSettings ()
 
virtual void logMessage (LogMessageType::Type type, const char *message)=0
 
virtual void messageBox (LogMessageType::Type type, const char *message)
 
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 ()
 
- Public Member Functions inherited from Common::EventSource
virtual bool pollEvent (Event &event)=0
 
virtual bool allowMapping () const
 
- Public Member Functions inherited from ModularGraphicsBackend
void setFeatureState (Feature f, bool enable) override
 
bool getFeatureState (Feature f) override
 
GraphicsManager * getGraphicsManager ()
 
const GraphicsMode * getSupportedGraphicsModes () const override
 
int getDefaultGraphicsMode () const override
 
bool setGraphicsMode (int mode, uint flags=kGfxModeNoFlags) override
 
int getGraphicsMode () const override
 
bool setShader (const Common::Path &name) override final
 
const GraphicsMode * getSupportedStretchModes () const override final
 
int getDefaultStretchMode () const override final
 
bool setStretchMode (int mode) override final
 
int getStretchMode () const override final
 
bool setRotationMode (Common::RotationMode rotation) override final
 
uint getDefaultScaler () const override final
 
uint getDefaultScaleFactor () const override final
 
bool setScaler (uint mode, int factor) override final
 
uint getScaler () const override final
 
uint getScaleFactor () const override final
 
void initSize (uint width, uint height, const Graphics::PixelFormat *format=NULL) override final
 
void initSizeHint (const Graphics::ModeList &modes) override final
 
int getScreenChangeID () const override final
 
void beginGFXTransaction () override final
 
OSystem::TransactionError endGFXTransaction () override final
 
int16 getHeight () override final
 
int16 getWidth () override final
 
PaletteManager * getPaletteManager () override final
 
void copyRectToScreen (const void *buf, int pitch, int x, int y, int w, int h) override final
 
Graphics::Surface * lockScreen () override final
 
void unlockScreen () override final
 
void fillScreen (uint32 col) override final
 
void fillScreen (const Common::Rect &r, uint32 col) override final
 
void updateScreen () override final
 
void presentBuffer () override final
 
void setShakePos (int shakeXOffset, int shakeYOffset) override final
 
void setFocusRectangle (const Common::Rect &rect) override final
 
void clearFocusRectangle () override final
 
void showOverlay (bool inGUI) override final
 
void hideOverlay () override final
 
bool isOverlayVisible () const override final
 
Graphics::PixelFormat getOverlayFormat () const override final
 
void clearOverlay () override final
 
void grabOverlay (Graphics::Surface &surface) override final
 
void copyRectToOverlay (const void *buf, int pitch, int x, int y, int w, int h) override final
 
int16 getOverlayHeight () const override final
 
int16 getOverlayWidth () const override final
 
Common::Rect getSafeOverlayArea (int16 *width, int16 *height) const override final
 
float getHiDPIScreenFactor () const override final
 
bool showMouse (bool visible) override final
 
void warpMouse (int x, int y) override final
 
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) override final
 
void setCursorPalette (const byte *colors, uint start, uint num) override final
 
bool lockMouse (bool lock) override final
 
bool setScaler (const char *name, int factor) override final
 
virtual bool setScaler (uint mode, int factor)
 
virtual bool setScaler (const char *name, int factor)
 
void displayMessageOnOSD (const Common::U32String &msg) override final
 
void displayActivityIconOnOSD (const Graphics::Surface *icon) override final
 
void saveScreenshot () override final
 

Public Attributes

Audio::MixerImpl * _mixer
 
bool _mouseButtons [2]
 
bool _ptrmouseButton
 
int _mouseX
 
int _mouseY
 

Additional Inherited Members

- Public Types inherited from OSystem
enum  Task { kLocalServer , kCloudDownload , kDataPackDownload }
 
enum  Feature {
  kFeatureFullscreenMode , kFeatureAspectRatioCorrection , kFeatureFilteringMode , kFeatureStretchMode ,
  kFeatureVirtualKeyboard , kFeatureCursorPalette , kFeatureCursorAlpha , kFeatureCursorMask ,
  kFeatureCursorMaskInvert , kFeatureCursorMaskPaletteXorColorXnor , kFeatureOverlaySupportsAlpha , kFeatureIconifyWindow ,
  kFeatureOpenGLForGame , kFeatureShadersForGame , kFeatureVSync , kFeatureDisplayLogFile ,
  kFeatureClipboardSupport , kFeatureOpenUrl , kFeatureTouchpadMode , kFeatureKbdMouseSpeed ,
  kFeatureJoystickDeadzone , kFeatureScalers , kFeatureShaders , kFeatureDLC ,
  kFeatureSystemBrowserDialog , kFeatureNoQuit , kFeatureTouchscreen , kFeatureCpuNEON ,
  kFeatureCpuSSE2 , kFeatureCpuSSE41 , kFeatureCpuAVX2 , kFeatureCpuAltivec ,
  kFeatureRotationMode , kFeatureStaleMousePositionWorkaround
}
 
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) ,
  kTransactionShaderChangeFailed = (1 << 7) , kTransactionVSyncFailed = (1 << 8)
}
 
virtual bool showMouse (bool visible)=0
 
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)
 
- Protected Attributes inherited from OSystem
AudioCDManager * _audiocdManager
 
Common::EventManager * _eventManager
 
Common::TimerManager * _timerManager
 
Common::SaveFileManager * _savefileManager
 
Common::TextToSpeechManager * _textToSpeechManager
 
Common::DialogManager * _dialogManager
 
FilesystemFactory * _fsFactory
 
Common::PrintingManager * _printingManager
 
DLC::Store * _dlcStore
 
Common::U32String _clipboard
 
bool _dummyUnused
 
- Protected Attributes inherited from ModularGraphicsBackend
GraphicsManager * _graphicsManager
 

Member Function Documentation

◆ initBackend()

void OSystem_libretro::initBackend ( void  )
overridevirtual

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.

Reimplemented from BaseBackend.

◆ engineInit()

void OSystem_libretro::engineInit ( void  )
overridevirtual

Allow the backend to perform engine-specific initialization.

Called just before the engine is run.

Reimplemented from OSystem.

◆ quit()

void OSystem_libretro::quit ( )
inlineoverridevirtual

Quit (exit) the application.

Implements OSystem.

◆ pollEvent()

bool OSystem_libretro::pollEvent ( Common::Event &  event)
overridevirtual

Query an event from the source.

Parameters
eventReference to the event struct where the event should be stored.
Return values
trueIf an event was polled, false otherwise.

Implements Common::EventSource.

◆ getMillis()

uint32 OSystem_libretro::getMillis ( bool  skipRecord = false)
overridevirtual

Get the number of milliseconds since the program was started.

Parameters
skipRecordSkip recording of this value by the event recorder. This might be needed particularly when we are in an on-screen GUI loop where the player can pause the recording.

Implements OSystem.

◆ delayMillis()

void OSystem_libretro::delayMillis ( uint  msecs)
overridevirtual

Delay/sleep for the specified amount of milliseconds.

Implements OSystem.

◆ createMutex()

Common::MutexInternal * OSystem_libretro::createMutex ( void  )
overridevirtual

Create a new mutex.

Returns
The newly created mutex, or 0 if an error occurred.

Implements OSystem.

◆ getTimeAndDate()

void OSystem_libretro::getTimeAndDate ( TimeDate &  td,
bool  skipRecord 
) const
overridevirtual

Get the current time and date, in the local timezone.

On many systems, this corresponds to the combination of time() and localtime().

Implements OSystem.

◆ getMixer()

Audio::Mixer * OSystem_libretro::getMixer ( void  )
overridevirtual

Return the audio mixer.

For more information, see Audio::Mixer.

Implements OSystem.

◆ getDefaultConfigFileName()

Common::Path OSystem_libretro::getDefaultConfigFileName ( void  )
overridevirtual

Get the default file name (or even path) where the user configuration of ScummVM will be saved.

Note that not all ports can use this.

Reimplemented from OSystem.

◆ logMessage()

void OSystem_libretro::logMessage ( LogMessageType::Type  type,
const char *  message 
)
overridevirtual

Log the given message.

It is up to the backend where to log the different messages. The backend should aim at using a non-buffered output for it, so that no log data is lost in case of a crash.

The default implementation outputs them on stdout/stderr.

Parameters
typeType of the message.
messageThe message itself.

Implements OSystem.

◆ hasFeature()

bool OSystem_libretro::hasFeature ( Feature  f)
overridevirtual

Determine whether the backend supports the specified feature.

Reimplemented from ModularGraphicsBackend.

◆ openUrl()

bool OSystem_libretro::openUrl ( const Common::String &  url)
overridevirtual

Open the given URL in the default browser (if available on the target system).

Returns
True on success, false otherwise.
Note
It is up to the backend to ensure that the system is in a state that allows the user to actually see the web page. This might for example require leaving fullscreen mode.
Parameters
urlThe URL to open.

Reimplemented from OSystem.

◆ addSysArchivesToSearchSet()

void OSystem_libretro::addSysArchivesToSearchSet ( Common::SearchSet &  s,
int  priority = 0 
)
overridevirtual

Add system-specific Common::Archive objects to the given SearchSet. For example, on Unix, the directory corresponding to DATA_PATH (if set), or, on macOS, the 'Resource' dir in the app bundle.

Parameters
sSearchSet to which the system-specific dirs, if any, are added.
priorityPriority with which those dirs are added.

Reimplemented from OSystem.

◆ buildHelpDialogData()

const char *const * OSystem_libretro::buildHelpDialogData ( )
overridevirtual

Return list of strings used for building help dialog

The strings represented in triplets:

  • Name of a tab (will be translated)
  • ZIP pack name with images (optional)
  • Text of the tab with Markdown formatting (also be translated)

The string list is null-terminated.

Reimplemented from OSystem.

◆ buildBackendOptionsWidget()

GUI::OptionsContainerWidget * OSystem_libretro::buildBackendOptionsWidget ( GUI::GuiObject *  boss,
const Common::String &  name,
const Common::String &  target 
) const
overridevirtual

Return a GUI widget container for configuring the specified target options.

The returned widget is shown in the Backend tab in the options dialog. Backends can build custom options dialogs.

Backends that don't want to have a Backend tab in the options dialog can return nullptr.

Parameters
bossthe widget / dialog the returned widget is a child of
namethe name the returned widget must use
targetname of a config manager target

Reimplemented from OSystem.

◆ applyBackendSettings()

void OSystem_libretro::applyBackendSettings ( )
overridevirtual

Notify the backend that the settings editable from the game tab in the options dialog may have changed and that they need to be applied if necessary.

Reimplemented from OSystem.


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