Public Member Functions | |
void | initBackend () |
bool | hasFeature (Feature f) |
void | setFeatureState (Feature f, bool enable) |
bool | getFeatureState (Feature f) |
const GraphicsMode * | getSupportedGraphicsModes () const |
int | getDefaultGraphicsMode () const |
bool | setGraphicsMode (int mode, uint flags) |
int | getGraphicsMode () const |
void | initSize (uint width, uint height, const Graphics::PixelFormat *format) |
int16 | getWidth () |
int16 | getHeight () |
PaletteManager * | getPaletteManager () |
void | setCursorPalette (const byte *colors, uint start, uint num) |
void | copyRectToScreen (const void *buf, int pitch, int x, int y, int w, int h) |
Graphics::Surface * | lockScreen () |
void | unlockScreen () |
void | updateScreen () |
void | setShakePos (int shakeXOffset, int shakeYOffset) |
void | showOverlay (bool inGUI) |
void | hideOverlay () |
bool | isOverlayVisible () const |
void | clearOverlay () |
void | grabOverlay (Graphics::Surface &surface) |
void | copyRectToOverlay (const void *buf, int pitch, int x, int y, int w, int h) |
int16 | getOverlayHeight () |
int16 | getOverlayWidth () |
Graphics::PixelFormat | getOverlayFormat () const |
bool | showMouse (bool visible) |
void | warpMouse (int x, int y) |
void | setMouseCursor (const void *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, bool dontScale, const Graphics::PixelFormat *format, const byte *mask) |
bool | pollEvent (Common::Event &event) |
bool | processInput (Common::Event &event) |
uint32 | getMillis (bool skipRecord=false) |
void | delayMillis (uint msecs) |
Common::MutexInternal * | createMutex (void) |
void | setupMixer (void) |
Audio::Mixer * | getMixer () |
FilesystemFactory * | getFilesystemFactory () |
void | getTimeAndDate (TimeDate &td, bool skipRecord=false) const |
virtual void | engineDone () |
void | quit () |
void | logMessage (LogMessageType::Type type, const char *message) |
virtual Common::Path | getDefaultConfigFileName () |
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 | engineInit () |
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) |
virtual const GraphicsMode * | getSupportedStretchModes () const |
virtual int | getDefaultStretchMode () const |
virtual bool | setStretchMode (int mode) |
bool | setStretchMode (const char *name) |
virtual int | getStretchMode () const |
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 | setFocusRectangle (const Common::Rect &rect) |
virtual void | clearFocusRectangle () |
virtual void | saveScreenshot () |
virtual bool | lockMouse (bool lock) |
virtual uint32 | getDoubleClickTime () const |
virtual Common::TimerManager * | getTimerManager () |
Common::EventManager * | getEventManager () |
virtual Common::HardwareInputSet * | getHardwareInputSet () |
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 void | addSysArchivesToSearchSet (Common::SearchSet &s, int priority=0) |
virtual Common::SeekableReadStream * | createConfigReadStream () |
virtual Common::WriteStream * | createConfigWriteStream () |
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 | 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 PaletteManager | |
void | setPalette (const Graphics::Palette &pal, uint start=0) |
Graphics::Palette | grabPalette (uint start, uint num) |
Static Public Member Functions | |
static OSystem * | instance () |
static void | mixCallback (void *sys, byte *samples, int len) |
Protected Member Functions | |
void | setPalette (const byte *colors, uint start, uint num) |
void | grabPalette (byte *colors, uint start, uint num) const |
|
virtual |
The following method is called once, from main.cpp, after all config data (including command line params etc.) is fully loaded.
Reimplemented from EventsBaseBackend.
|
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 |
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 |
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 |
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 |
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 |
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 |
|
inlinevirtual |
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 |
Query an event from the source.
event | Reference to the event struct where the event should be stored. |
true | If an event was polled, false otherwise. |
Implements Common::EventSource.
|
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 |
|
inlinevirtual |
|
inlinevirtual |
Return the FilesystemFactory object, depending on the current architecture.
Reimplemented from 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 |
Allow the backend to perform engine-specific deinitialization.
Called after the engine finishes.
Reimplemented from OSystem.
|
virtual |
Quit (exit) the application.
Implements 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 |
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.