Public Member Functions | |
virtual bool | hasFeature (Feature f) |
virtual void | setFeatureState (Feature f, bool enable) |
virtual bool | getFeatureState (Feature f) |
virtual const OSystem::GraphicsMode * | getSupportedGraphicsModes () const |
virtual int | getDefaultGraphicsMode () const |
virtual bool | setGraphicsMode (int mode, uint flags) |
virtual int | getGraphicsMode () const |
virtual const GraphicsMode * | getSupportedStretchModes () const |
virtual int | getDefaultStretchMode () const |
virtual bool | setStretchMode (int mode) |
virtual int | getStretchMode () const |
virtual Graphics::PixelFormat | getScreenFormat () const |
virtual Common::List< Graphics::PixelFormat > | getSupportedFormats () const |
virtual void | initSize (uint width, uint height, const Graphics::PixelFormat *format) |
virtual int16 | getHeight () |
virtual int16 | getWidth () |
virtual PaletteManager * | getPaletteManager () |
virtual void | copyRectToScreen (const void *buf, int pitch, int x, int y, int w, int h) |
virtual void | updateScreen () |
virtual void | setShakePos (int shakeXOffset, int shakeYOffset) |
virtual void | showOverlay (bool inGUI) |
virtual void | hideOverlay () |
virtual bool | isOverlayVisible () const |
virtual void | clearOverlay () |
virtual void | grabOverlay (Graphics::Surface &surface) |
virtual void | copyRectToOverlay (const void *buf, int pitch, int x, int y, int w, int h) |
virtual int16 | getOverlayHeight () |
virtual int16 | getOverlayWidth () |
virtual Graphics::PixelFormat | getOverlayFormat () const |
Common::Point | transformPoint (int16 x, int16 y) |
virtual bool | showMouse (bool visible) |
virtual void | warpMouse (int x, int y) |
virtual void | setMouseCursor (const void *buf, uint w, uint h, int hotspotX, int hotspotY, u32 keycolor, bool dontScale, const Graphics::PixelFormat *format, const byte *mask) |
virtual void | addSysArchivesToSearchSet (Common::SearchSet &s, int priority) |
virtual uint32 | getMillis (bool skipRecord=false) |
virtual void | delayMillis (uint msecs) |
virtual void | getTimeAndDate (TimeDate &td, bool skipRecord=false) const |
void | doTimerCallback (int interval=10) |
virtual Common::MutexInternal * | createMutex () |
virtual Common::EventSource * | getDefaultEventSource () |
virtual Common::HardwareInputSet * | getHardwareInputSet () |
virtual Common::String | getSystemLanguage () const |
virtual void | engineInit () |
virtual void | engineDone () |
virtual void | quit () |
virtual void | setFocusRectangle (const Common::Rect &rect) |
virtual void | clearFocusRectangle () |
virtual void | initBackend () |
virtual Graphics::Surface * | lockScreen () |
virtual void | unlockScreen () |
virtual void | setCursorPalette (const byte *colors, uint start, uint num) |
void | setSwapLCDs (bool swap) |
void | refreshCursor (u16 *dst, const Graphics::Surface &src, const uint16 *palette) |
virtual void | logMessage (LogMessageType::Type type, const char *message) |
virtual void | messageBox (LogMessageType::Type type, const char *message) |
void | setMainScreen (int32 x, int32 y, int32 sx, int32 sy) |
void | setSubScreen (int32 x, int32 y, int32 sx, int32 sy) |
Public Member Functions inherited from ModularMixerBackend | |
virtual MixerManager * | getMixerManager () |
Audio::Mixer * | getMixer () override final |
Public Member Functions inherited from BaseBackend | |
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 |
Public Member Functions inherited from OSystem | |
void | destroy () |
virtual void | init () |
bool | backendInitialized () const |
virtual void | taskStarted (Task) |
virtual void | taskFinished (Task) |
virtual void | updateStartSettings (const Common::String &executable, Common::String &command, Common::StringMap &startSettings, Common::StringArray &additionalArgs) |
bool | setGraphicsMode (const char *name) |
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) |
bool | setStretchMode (const char *name) |
virtual uint | getDefaultScaler () const |
virtual uint | getDefaultScaleFactor () const |
virtual bool | setScaler (uint mode, int factor) |
virtual uint | getScaler () const |
virtual uint | getScaleFactor () const |
virtual void | initSizeHint (const Graphics::ModeList &modes) |
virtual int | getScreenChangeID () const |
virtual void | beginGFXTransaction () |
virtual TransactionError | endGFXTransaction () |
virtual float | getHiDPIScreenFactor () const |
virtual void | saveScreenshot () |
virtual bool | lockMouse (bool lock) |
virtual uint32 | getDoubleClickTime () const |
virtual Common::TimerManager * | getTimerManager () |
Common::EventManager * | getEventManager () |
virtual Common::KeymapArray | getGlobalKeymaps () |
virtual Common::KeymapperDefaultBindings * | getKeymapperDefaultBindings () |
AudioCDManager * | getAudioCDManager () |
virtual void | fatalError () |
virtual void | setWindowCaption (const Common::U32String &caption) |
virtual Common::SaveFileManager * | getSavefileManager () |
virtual Common::TextToSpeechManager * | getTextToSpeechManager () |
virtual Common::DialogManager * | getDialogManager () |
virtual DLC::Store * | getDLCStore () |
virtual FilesystemFactory * | getFilesystemFactory () |
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 bool | displayLogFile () |
virtual bool | hasTextInClipboard () |
virtual Common::U32String | getTextFromClipboard () |
virtual bool | setTextInClipboard (const Common::U32String &text) |
virtual bool | openUrl (const Common::String &url) |
virtual bool | isConnectionLimited () |
Public Member Functions inherited from PaletteManager | |
void | setPalette (const Graphics::Palette &pal, uint start=0) |
Graphics::Palette | grabPalette (uint start, uint num) |
Static Public Member Functions | |
static OSystem_DS * | instance () |
Public Attributes | |
int | _currentTimeMillis |
int | _callbackTimer |
Protected Member Functions | |
void | initGraphics () |
virtual void | setPalette (const byte *colors, uint start, uint num) |
virtual void | grabPalette (byte *colors, uint start, uint num) const |
Protected Attributes | |
Graphics::Surface | _framebuffer |
Graphics::Surface | _overlay |
DS::Background * | _screen |
DS::Background * | _overlayScreen |
bool | _subScreenActive |
Graphics::Surface | _cursor |
int | _graphicsMode |
int | _stretchMode |
bool | _paletteDirty |
bool | _cursorDirty |
u16 | _palette [256] |
u16 | _cursorPalette [256] |
u16 * | _cursorSprite |
Common::Point | _cursorPos |
int | _cursorHotX |
int | _cursorHotY |
uint32 | _cursorKey |
bool | _cursorVisible |
bool | _overlayInGUI |
DSEventSource * | _eventSource |
DS::Keyboard * | _keyboard |
bool | _disableCursorPalette |
const Graphics::PixelFormat | _pfCLUT8 |
const Graphics::PixelFormat | _pfABGR1555 |
bool | _engineRunning |
Protected Attributes inherited from ModularMixerBackend | |
MixerManager * | _mixerManager |
Protected Attributes inherited from OSystem | |
AudioCDManager * | _audiocdManager |
Common::EventManager * | _eventManager |
Common::TimerManager * | _timerManager |
Common::SaveFileManager * | _savefileManager |
Common::TextToSpeechManager * | _textToSpeechManager |
Common::DialogManager * | _dialogManager |
FilesystemFactory * | _fsFactory |
DLC::Store * | _dlcStore |
Common::U32String | _clipboard |
bool | _dummyUnused |
Static Protected Attributes | |
static OSystem_DS * | _instance |
|
virtual |
Determine whether the backend supports the specified feature.
Reimplemented from OSystem.
|
virtual |
Enable or disable the specified feature.
For example, this may be used to enable fullscreen mode or to deactivate aspect correction, etc.
Reimplemented from OSystem.
|
virtual |
Query the state of the specified feature.
For example, test whether fullscreen mode is active or not.
Reimplemented from OSystem.
|
virtual |
Retrieve a list of all graphics modes supported by this backend.
This can be both video modes as well as graphic filters/scalers. It is completely up to the backend maintainer to decide what is appropriate here and what not. The list is terminated by an all-zero entry.
Reimplemented from OSystem.
|
virtual |
Return the ID of the 'default' graphics mode. What exactly this means is up to the backend. This mode is set by the client code when no user overrides are present (i.e. if no custom graphics mode is selected using the command line or a config file).
Reimplemented from OSystem.
|
virtual |
Switch to the specified graphics mode.
If switching to the new mode fails, this method returns false.
The flag 'kGfxModeRender3d' is optional. It allows to switch to 3D-only rendering mode. In this mode, the game engine is allowed to use OpenGL(ES) directly.
mode | ID of the new graphics mode. |
flags | Flags for the new graphics mode. |
Reimplemented from OSystem.
|
virtual |
Determine which graphics mode is currently active.
Reimplemented from OSystem.
|
virtual |
Retrieve a list of all stretch modes supported by this backend.
It is completely up to the backend maintainer to decide what is appropriate here and what not. The list is terminated by an all-zero entry.
Reimplemented from OSystem.
|
virtual |
Return the ID of the 'default' stretch mode.
What exactly this means is up to the backend. This mode is set by the client code when no user overrides are present (i.e. if no custom stretch mode is selected using the command line or a config file).
Reimplemented from OSystem.
|
virtual |
Switch to the specified stretch mode.
If switching to the new mode fails, this method returns false.
mode | ID of the new graphics mode. |
Reimplemented from OSystem.
|
virtual |
Determine which stretch mode is currently active.
Reimplemented from OSystem.
|
virtual |
Set the size and color format of the virtual screen.
Typical sizes include:
This is the resolution for which the client code generates data. This is not necessarily equal to the actual display size. For example, a backend may magnify the graphics to fit on the screen (see also the GraphicsMode), stretch the data to perform aspect ratio correction, or shrink it to fit on small screens (in cell phones).
Typical formats include:
This is the pixel format for which the client code generates data. It is not necessarily equal to the hardware pixel format. For example, a backend may perform color lookup of 8-bit graphics before pushing a screen to hardware, or correct the ARGB color order.
width | New virtual screen width. |
height | New virtual screen height. |
format | New virtual screen pixel format. |
Implements OSystem.
|
virtual |
|
virtual |
|
inlinevirtual |
|
protectedvirtual |
Replace the specified range of the palette with new colors. The palette entries from 'start' till (start+num-1) will be replaced - so a full palette update is accomplished via start=0, num=256.
The palette data is specified in interleaved RGB format. That is, the first byte of the memory block 'colors' points at is the red component of the first new color; the second byte the green component of the first new color; the third byte the blue component, the last byte to the alpha (transparency) value. Then the second color starts, and so on. So memory looks like this: R1-G1-B1-R2-G2-B2-R3-...
colors | the new palette data, in interleaved RGB format |
start | the first palette entry to be updated |
num | the number of palette entries to be updated |
Implements PaletteManager.
|
protectedvirtual |
Grabs a specified part of the currently active palette. The format is the same as for setPalette.
This should return exactly the same RGB data as was setup via previous setPalette calls.
For example, for every valid value of start and num of the following code:
byte origPal[num*3]; // Setup origPal's data however you like g_system->setPalette(origPal, start, num); byte obtainedPal[num*3]; g_system->grabPalette(obtainedPal, start, num);
the following should be true:
memcmp(origPal, obtainedPal, num*3) == 0
colors | the palette data, in interleaved RGB format |
start | the first platte entry to be read |
num | the number of palette entries to be read |
Implements PaletteManager.
|
virtual |
Blit a bitmap to the virtual screen.
The real screen will not immediately be updated to reflect the changes. Client code must call updateScreen to ensure any changes are visible to the user. This can be used to optimize drawing and reduce flicker.
If the current pixel format has one byte per pixel, the graphics data uses 8 bits per pixel, using the palette specified via setPalette. If more than one byte per pixel is in use, the graphics data uses the pixel format returned by getScreenFormat.
buf | Buffer containing the graphics data source. |
pitch | Pitch of the buffer (number of bytes in a scanline). |
x | x coordinate of the destination rectangle. |
y | y coordinate of the destination rectangle. |
w | Width of the destination rectangle. |
h | Height of the destination rectangle. |
Implements OSystem.
|
virtual |
Flush the whole screen, i.e. render the current content of the screen framebuffer to the display.
This method may be called very often by engines. Backends are hence supposed to only perform any redrawing if it is necessary and otherwise return immediately. See https://wiki.scummvm.org/index.php/HOWTO-Backends#updateScreen.28.29_method
Implements OSystem.
|
virtual |
Set current shake position, a feature needed for screen effects in some engines.
The effect causes the displayed graphics to be shifted downwards and rightwards by the specified offsets (the offsets can be negative to shift upwards or leftwards). The area at the border of the screen which is moved into view by this (for example at the bottom when moving upward) is filled with black. This does not cause any graphic data to be lost. To restore the original view, the game engine only has to call this method again with offset equal to zero. No calls to copyRectToScreen are necessary.
shakeXOffset | Shake x offset. |
shakeYOffset | Shake y offset. |
Implements OSystem.
|
virtual |
Activate the overlay mode.
Implements OSystem.
|
virtual |
Deactivate the overlay mode.
Implements OSystem.
|
virtual |
Return true if the overlay mode is activated, false otherwise.
Implements OSystem.
|
virtual |
Reset the overlay.
After calling this method while the overlay mode is active, the user should be seeing only the game graphics. How this is achieved depends on how the backend implements the overlay. It either sets all pixels of the overlay to be transparent (when alpha blending is used) or, in case of fake alpha blending, it might just put a copy of the current game graphics screen into the overlay.
Implements OSystem.
|
virtual |
Copy the content of the overlay into a surface provided by the caller.
This is only used to implement fake alpha blending.
Implements OSystem.
|
virtual |
Blit a graphics buffer to the overlay.
In a sense, this is the reverse of grabOverlay.
buf | Buffer containing the graphics data source. |
pitch | Pitch of the buffer (number of bytes in a scanline). |
x | x coordinate of the destination rectangle. |
y | y coordinate of the destination rectangle. |
w | Width of the destination rectangle. |
h | Height of the destination rectangle. |
Implements OSystem.
|
virtual |
|
virtual |
|
virtual |
Return the pixel format description of the overlay.
Implements OSystem.
|
virtual |
Show or hide the mouse cursor.
Currently, the backend is not required to immediately draw the mouse cursor on showMouse(true).
Implements OSystem.
|
virtual |
Move ("warp") the mouse cursor to the specified position in virtual screen coordinates.
x | New x position of the mouse. |
y | New y position of the mouse. |
Implements OSystem.
|
virtual |
Set the bitmap used for drawing the cursor.
buf | Pixmap data to be used. |
w | Width of the mouse cursor. |
h | Height of the mouse cursor. |
hotspotX | Horizontal offset from the left side to the hotspot. |
hotspotY | Vertical offset from the top side to the hotspot. |
keycolor | Transparency color value. This should not exceed the maximum color value of the specified format. In case it does, the behavior is undefined. The backend might just error out or simply ignore the value. (The SDL backend will just assert to prevent abuse of this). This parameter does nothing if a mask is provided. |
dontScale | Whether the cursor should never be scaled. An exception is high ppi displays, where the cursor might be too small to notice otherwise, these are allowed to scale the cursor anyway. |
format | Pointer to the pixel format that the cursor graphic uses (0 means CLUT8). |
mask | A mask containing values from the CursorMaskValue enum for each cursor pixel. |
Implements OSystem.
|
virtual |
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.
s | SearchSet to which the system-specific dirs, if any, are added. |
priority | Priority with which those dirs are added. |
Reimplemented from OSystem.
|
virtual |
Get the number of milliseconds since the program was started.
skipRecord | Skip 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.
|
virtual |
Delay/sleep for the specified amount of milliseconds.
Implements OSystem.
|
virtual |
Get the current time and date, in the local timezone.
On many systems, this corresponds to the combination of time() and localtime().
Implements OSystem.
|
virtual |
|
virtual |
Register hardware inputs with keymapper.
For more information, see keymapper.
Reimplemented from OSystem.
|
virtual |
Return the language of the system.
This returns the currently set language of the system on which ScummVM is run.
The format is an ISO 639 language code, optionally followed by an ISO 3166-1 country code in the form language_country.
For information about POSIX locales, see the following link: https://en.wikipedia.org/wiki/ISO_639 https://en.wikipedia.org/wiki/ISO_3166-1
The default implementation returns "en_US".
Reimplemented from OSystem.
|
virtual |
Allow the backend to perform engine-specific initialization.
Called just before the engine is run.
Reimplemented from OSystem.
|
virtual |
Allow the backend to perform engine-specific deinitialization.
Called after the engine finishes.
Reimplemented from OSystem.
|
virtual |
Quit (exit) the application.
Implements OSystem.
|
virtual |
Set the area of the screen that has the focus.
For example, when a character is speaking, they will have the focus. This allows for pan-and-scan style views where the backend can follow the speaking character or area of interest on the screen.
The backend is responsible for clipping the rectangle and deciding how best to zoom the screen to show any shape and size rectangle the engine provides.
rect | Rectangle on the screen to be focused on. |
Reimplemented from OSystem.
|
virtual |
Clear the focus set by a call to setFocusRectangle().
This allows the engine to clear the focus when no particular area of the screen has the focus.
Reimplemented from OSystem.
|
virtual |
The following method is called once, from main.cpp, after all config data (including command line params etc.) is fully loaded.
Reimplemented from BaseBackend.
|
virtual |
Lock the active screen framebuffer and return a Graphics::Surface representing it.
The caller can then perform arbitrary graphics transformations on the framebuffer (blitting, scrolling, etc.). Must be followed by a matching call to unlockScreen(). Code that is calling this should make sure to only lock the framebuffer for the shortest time possible, as the whole system is potentially stalled while the lock is active.
The returned surface must not be deleted by the client code.
Implements OSystem.
|
virtual |
Unlock the screen framebuffer, and mark it as dirty, i.e. during the next updateScreen() call, the whole screen will be updated.
Implements OSystem.
|
virtual |
Replace the specified range of cursor palette with new colors.
The palette entries from 'start' till (start+num-1) will be replaced - so a full palette update is accomplished via start=0, num=256.
Backends which implement this should have the kFeatureCursorPalette flag set.
Reimplemented from OSystem.
|
virtual |
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.
type | Type of the message. |
message | The message itself. |
Implements OSystem.
|
virtual |
Display a dialog box containing the given message.
type | Type of the message. |
message | The message itself. |
Reimplemented from OSystem.