ScummVM API documentation
N3DS::OSystem_3DS Class Reference
Inheritance diagram for N3DS::OSystem_3DS:
EventsBaseBackend PaletteManager Common::EventObserver BaseBackend Common::EventSource Common::NonCopyable OSystem Common::NonCopyable

Public Member Functions

virtual void initBackend ()
 
virtual bool hasFeature (OSystem::Feature f)
 
virtual void setFeatureState (OSystem::Feature f, bool enable)
 
virtual bool getFeatureState (OSystem::Feature f)
 
bool pollEvent (Common::Event &event) override
 
bool notifyEvent (const Common::Event &event) override
 
Common::HardwareInputSetgetHardwareInputSet () override
 
Common::KeymapArray getGlobalKeymaps () override
 
Common::KeymapperDefaultBindingsgetKeymapperDefaultBindings () override
 
void registerDefaultSettings (const Common::String &target) const override
 
GUI::OptionsContainerWidgetbuildBackendOptionsWidget (GUI::GuiObject *boss, const Common::String &name, const Common::String &target) const override
 
void applyBackendSettings () override
 
virtual uint32 getMillis (bool skipRecord=false)
 
virtual void delayMillis (uint msecs)
 
virtual void getTimeAndDate (TimeDate &td, bool skipRecord=false) const
 
virtual Common::MutexInternalcreateMutex ()
 
virtual void logMessage (LogMessageType::Type type, const char *message)
 
virtual Audio::MixergetMixer ()
 
virtual PaletteManagergetPaletteManager ()
 
virtual Common::String getSystemLanguage () const
 
virtual void fatalError ()
 
virtual void quit ()
 
virtual Common::Path getDefaultConfigFileName ()
 
void addSysArchivesToSearchSet (Common::SearchSet &s, int priority) override
 
Graphics::PixelFormat getScreenFormat () const
 
virtual Common::List< Graphics::PixelFormatgetSupportedFormats () const
 
void initSize (uint width, uint height, const Graphics::PixelFormat *format=NULL)
 
virtual int getScreenChangeID () const
 
GraphicsModeID chooseMode (Graphics::PixelFormat *format)
 
bool setGraphicsMode (GraphicsModeID modeID)
 
void beginGFXTransaction ()
 
OSystem::TransactionError endGFXTransaction ()
 
int16 getHeight ()
 
int16 getWidth ()
 
float getScaleRatio () const
 
void setPalette (const byte *colors, uint start, uint num)
 
void grabPalette (byte *colors, uint start, uint num) const
 
void copyRectToScreen (const void *buf, int pitch, int x, int y, int w, int h)
 
Graphics::SurfacelockScreen ()
 
void unlockScreen ()
 
void updateScreen ()
 
void setShakePos (int shakeXOffset, int shakeYOffset)
 
void setFocusRectangle (const Common::Rect &rect)
 
void clearFocusRectangle ()
 
void showOverlay (bool inGUI)
 
void hideOverlay ()
 
bool isOverlayVisible () const
 
Graphics::PixelFormat getOverlayFormat () const
 
void clearOverlay ()
 
void grabOverlay (Graphics::Surface &surface)
 
void copyRectToOverlay (const void *buf, int pitch, int x, int y, int w, int h)
 
virtual int16 getOverlayHeight ()
 
virtual int16 getOverlayWidth ()
 
void displayMessageOnOSD (const Common::U32String &msg) override
 
void displayActivityIconOnOSD (const Graphics::Surface *icon) override
 
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=false, const Graphics::PixelFormat *format=NULL, const byte *mask=NULL)
 
void setCursorPalette (const byte *colors, uint start, uint num)
 
void transformPoint (touchPosition &point)
 
void clipPoint (touchPosition &point)
 
void setCursorDelta (float deltaX, float deltaY)
 
void updateFocus ()
 
void updateMagnify ()
 
void updateBacklight ()
 
void updateConfig ()
 
void updateSize ()
 
- Public Member Functions inherited from BaseBackend
bool setScaler (const char *name, int factor) override final
 
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 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 const GraphicsModegetSupportedGraphicsModes () 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::PixelFormatgetSupportedFormats () const
 
virtual Common::Array< uint > getSupportedAntiAliasingLevels () const
 
virtual OpenGL::ContextType getOpenGLType () const
 
virtual bool setShader (const Common::Path &fileName)
 
virtual const GraphicsModegetSupportedStretchModes () 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 float getHiDPIScreenFactor () const
 
virtual void saveScreenshot ()
 
virtual bool lockMouse (bool lock)
 
virtual uint32 getDoubleClickTime () const
 
virtual Common::TimerManagergetTimerManager ()
 
Common::EventManagergetEventManager ()
 
AudioCDManagergetAudioCDManager ()
 
virtual void setWindowCaption (const Common::U32String &caption)
 
virtual Common::SaveFileManagergetSavefileManager ()
 
virtual Common::TextToSpeechManagergetTextToSpeechManager ()
 
virtual Common::DialogManagergetDialogManager ()
 
virtual DLC::StoregetDLCStore ()
 
virtual FilesystemFactorygetFilesystemFactory ()
 
virtual Common::SeekableReadStreamcreateConfigReadStream ()
 
virtual Common::WriteStreamcreateConfigWriteStream ()
 
virtual const char *const * buildHelpDialogData ()
 
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 bool isConnectionLimited ()
 
- Public Member Functions inherited from Common::EventObserver
virtual void notifyPoll ()
 

Public Attributes

volatile bool exiting
 
volatile bool sleeping
 
PauseToken _sleepPauseToken
 
bool _showCursor
 
bool _snapToBorder
 
bool _stretchToFit
 
Screen _screen
 

Protected Attributes

Audio::MixerImpl_mixer
 
Backends::Log::Log_logger
 
- 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
 

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, kFeatureFullscreenToggleKeepsContext,
  kFeatureDisplayLogFile, kFeatureClipboardSupport, kFeatureOpenUrl, kFeatureTouchpadMode,
  kFeatureKbdMouseSpeed, kFeatureJoystickDeadzone, kFeatureScalers, kFeatureShaders,
  kFeatureDLC, kFeatureSystemBrowserDialog, kFeatureNoQuit, kFeatureTouchscreen,
  kFeatureCpuNEON, kFeatureCpuSSE2, kFeatureCpuSSE41, kFeatureCpuAVX2,
  kFeatureCpuAltivec
}
 
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)
}
 

Member Function Documentation

◆ initBackend()

virtual void N3DS::OSystem_3DS::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.

Reimplemented from EventsBaseBackend.

◆ hasFeature()

virtual bool N3DS::OSystem_3DS::hasFeature ( OSystem::Feature  f)
virtual

Determine whether the backend supports the specified feature.

Reimplemented from OSystem.

◆ setFeatureState()

virtual void N3DS::OSystem_3DS::setFeatureState ( OSystem::Feature  f,
bool  enable 
)
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.

◆ getFeatureState()

virtual bool N3DS::OSystem_3DS::getFeatureState ( OSystem::Feature  f)
virtual

Query the state of the specified feature.

For example, test whether fullscreen mode is active or not.

Reimplemented from OSystem.

◆ pollEvent()

bool N3DS::OSystem_3DS::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.

◆ notifyEvent()

bool N3DS::OSystem_3DS::notifyEvent ( const Common::Event event)
overridevirtual

Notify the observer of an incoming event.

An observer is supposed to 'eat' the event, with returning true, when it wants to prevent other observers from receiving the event. A usage example here is the keymapper: If it processes an Event, it should 'eat' it and create a new event, which the EventDispatcher will then catch.

Parameters
eventThe event that is incoming.
Return values
trueIf the event should not be passed to other observers, false otherwise.

Implements Common::EventObserver.

◆ getHardwareInputSet()

Common::HardwareInputSet* N3DS::OSystem_3DS::getHardwareInputSet ( )
overridevirtual

Register hardware inputs with keymapper.

Returns
HardwareInputSet with all keys and recommended mappings.

For more information, see keymapper.

Reimplemented from OSystem.

◆ getGlobalKeymaps()

Common::KeymapArray N3DS::OSystem_3DS::getGlobalKeymaps ( )
overridevirtual

Return a platform-specific global keymap.

Returns
Keymap with actions appropriate for the platform.

The caller will use and delete the return object.

For more information, see keymapper.

Reimplemented from OSystem.

◆ getKeymapperDefaultBindings()

Common::KeymapperDefaultBindings* N3DS::OSystem_3DS::getKeymapperDefaultBindings ( )
overridevirtual

Return platform-specific default keybindings.

Returns
KeymapperDefaultBindings populated with keybindings.

For more information, see keymapper.

Reimplemented from OSystem.

◆ registerDefaultSettings()

void N3DS::OSystem_3DS::registerDefaultSettings ( const Common::String target) const
overridevirtual

Register the default values for the settings the backend uses into the configuration manager.

Parameters
targetname of a config manager target

Reimplemented from OSystem.

◆ buildBackendOptionsWidget()

GUI::OptionsContainerWidget* N3DS::OSystem_3DS::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 N3DS::OSystem_3DS::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.

◆ getMillis()

virtual uint32 N3DS::OSystem_3DS::getMillis ( bool  skipRecord = false)
virtual

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()

virtual void N3DS::OSystem_3DS::delayMillis ( uint  msecs)
virtual

Delay/sleep for the specified amount of milliseconds.

Implements OSystem.

◆ getTimeAndDate()

virtual void N3DS::OSystem_3DS::getTimeAndDate ( TimeDate td,
bool  skipRecord = false 
) const
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.

◆ createMutex()

virtual Common::MutexInternal* N3DS::OSystem_3DS::createMutex ( )
virtual

Create a new mutex.

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

Implements OSystem.

◆ logMessage()

virtual void N3DS::OSystem_3DS::logMessage ( LogMessageType::Type  type,
const char *  message 
)
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.

Parameters
typeType of the message.
messageThe message itself.

Implements OSystem.

◆ getMixer()

virtual Audio::Mixer* N3DS::OSystem_3DS::getMixer ( )
virtual

Return the audio mixer.

For more information, see Audio::Mixer.

Implements OSystem.

◆ getPaletteManager()

virtual PaletteManager* N3DS::OSystem_3DS::getPaletteManager ( )
inlinevirtual

Return the palette manager singleton.

For more information, see PaletteManager.

Implements OSystem.

◆ getSystemLanguage()

virtual Common::String N3DS::OSystem_3DS::getSystemLanguage ( ) const
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".

Returns
Locale of the system.

Reimplemented from OSystem.

◆ fatalError()

virtual void N3DS::OSystem_3DS::fatalError ( )
virtual

Signal that a fatal error inside the client code has occurred.

This should quit the application.

Reimplemented from OSystem.

◆ quit()

virtual void N3DS::OSystem_3DS::quit ( )
virtual

Quit (exit) the application.

Implements OSystem.

◆ getDefaultConfigFileName()

virtual Common::Path N3DS::OSystem_3DS::getDefaultConfigFileName ( )
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.

◆ addSysArchivesToSearchSet()

void N3DS::OSystem_3DS::addSysArchivesToSearchSet ( Common::SearchSet s,
int  priority 
)
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.

◆ initSize()

void N3DS::OSystem_3DS::initSize ( uint  width,
uint  height,
const Graphics::PixelFormat format = NULL 
)
virtual

Set the size and color format of the virtual screen.

Typical sizes include:

  • 320x200 (e.g. for most SCUMM games, and Simon)
  • 320x240 (e.g. for FM-TOWN SCUMM games)
  • 640x480 (e.g. for Curse of Monkey Island)

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:

  • CLUT8 (e.g. 256 color, for most games)
  • RGB555 (e.g. 16-bit color, for later SCUMM HE games)
  • RGB565 (e.g. 16-bit color, for Urban Runner)

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.

Parameters
widthNew virtual screen width.
heightNew virtual screen height.
formatNew virtual screen pixel format.

Implements OSystem.

◆ getScreenChangeID()

virtual int N3DS::OSystem_3DS::getScreenChangeID ( ) const
inlinevirtual

Return an int value that is changed whenever any screen parameters (like the resolution) change, i.e. whenever EVENT_SCREEN_CHANGED is sent.

You can track this value in your code to detect screen changes in case you do not have full control over the event loop(s) being used (like the GUI code).

Returns
Integer that can be used to track screen changes.
Note
Backends that generate EVENT_SCREEN_CHANGED events must overload this method appropriately.

Reimplemented from OSystem.

◆ beginGFXTransaction()

void N3DS::OSystem_3DS::beginGFXTransaction ( )
virtual

Begin a new GFX transaction, which is a sequence of GFX mode changes.

The idea behind GFX transactions is to make it possible to activate several different GFX changes at once as a "batch" operation. For example, assume we are running in 320x200 with a 2x scaler (thus using 640x400 pixels in total). Now, we want to switch to 640x400 with the 1x scaler. Without transactions, we have to choose whether we want to first switch the scaler mode, or first to 640x400 mode. In either case, depending on the backend implementation, problems may occur. For example, the window might briefly switch to 320x200 or 1280x800. Using transactions, this can be avoided.

Note
Transaction support is optional, and the default implementations of the relevant methods simply do nothing.
See also
endGFXTransaction

Reimplemented from OSystem.

◆ endGFXTransaction()

OSystem::TransactionError N3DS::OSystem_3DS::endGFXTransaction ( )
virtual

End (and thereby commit) the current GFX transaction.

See also
beginGFXTransaction
kTransactionError
Returns
ORed combination of TransactionError values or 0 on success.

Reimplemented from OSystem.

◆ getHeight()

int16 N3DS::OSystem_3DS::getHeight ( )
inlinevirtual

Return the currently set virtual screen height.

See also
initSize
Returns
Currently set virtual screen height.

Implements OSystem.

◆ getWidth()

int16 N3DS::OSystem_3DS::getWidth ( )
inlinevirtual

Return the currently set virtual screen width.

See also
initSize
Returns
Currently set virtual screen width.

Implements OSystem.

◆ setPalette()

void N3DS::OSystem_3DS::setPalette ( const byte *  colors,
uint  start,
uint  num 
)
virtual

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-...

Parameters
colorsthe new palette data, in interleaved RGB format
startthe first palette entry to be updated
numthe number of palette entries to be updated
Note
It is an error if start+num exceeds 256, behavior is undefined in that case (the backend may ignore it silently or assert).
It is an error if this function gets called when the pixel format in use (the return value of getScreenFormat) has more than one byte per pixel.
See also
getScreenFormat

Implements PaletteManager.

◆ grabPalette()

void N3DS::OSystem_3DS::grabPalette ( byte *  colors,
uint  start,
uint  num 
) const
virtual

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

See also
setPalette
Parameters
colorsthe palette data, in interleaved RGB format
startthe first platte entry to be read
numthe number of palette entries to be read
Note
It is an error if this function gets called when the pixel format in use (the return value of getScreenFormat) has more than one byte per pixel.
See also
getScreenFormat

Implements PaletteManager.

◆ copyRectToScreen()

void N3DS::OSystem_3DS::copyRectToScreen ( const void *  buf,
int  pitch,
int  x,
int  y,
int  w,
int  h 
)
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.

Parameters
bufBuffer containing the graphics data source.
pitchPitch of the buffer (number of bytes in a scanline).
xx coordinate of the destination rectangle.
yy coordinate of the destination rectangle.
wWidth of the destination rectangle.
hHeight of the destination rectangle.
Note
The specified destination rectangle must be completly contained in the visible screen space, and must be non-empty. If not, a backend may or may not perform clipping, trigger an assert, or silently corrupt memory.
See also
updateScreen
getScreenFormat

Implements OSystem.

◆ lockScreen()

Graphics::Surface* N3DS::OSystem_3DS::lockScreen ( )
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.

Returns
0 if an error occurs. Otherwise, a surface with the pixel format described by getScreenFormat is returned.

The returned surface must not be deleted by the client code.

See also
getScreenFormat

Implements OSystem.

◆ unlockScreen()

void N3DS::OSystem_3DS::unlockScreen ( )
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.

◆ updateScreen()

void N3DS::OSystem_3DS::updateScreen ( )
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.

◆ setShakePos()

void N3DS::OSystem_3DS::setShakePos ( int  shakeXOffset,
int  shakeYOffset 
)
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.

Parameters
shakeXOffsetShake x offset.
shakeYOffsetShake y offset.
Note
This is currently used in the SCUMM, QUEEN, KYRA, SCI, DREAMWEB, SUPERNOVA, TEENAGENT, TOLTECS, ULTIMA, and PETKA engines.

Implements OSystem.

◆ setFocusRectangle()

void N3DS::OSystem_3DS::setFocusRectangle ( const Common::Rect rect)
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.

Parameters
rectRectangle on the screen to be focused on.
See also
clearFocusRectangle

Reimplemented from OSystem.

◆ clearFocusRectangle()

void N3DS::OSystem_3DS::clearFocusRectangle ( )
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.

See also
setFocusRectangle

Reimplemented from OSystem.

◆ showOverlay()

void N3DS::OSystem_3DS::showOverlay ( bool  inGUI)
virtual

Activate the overlay mode.

Implements OSystem.

◆ hideOverlay()

void N3DS::OSystem_3DS::hideOverlay ( )
virtual

Deactivate the overlay mode.

Implements OSystem.

◆ isOverlayVisible()

bool N3DS::OSystem_3DS::isOverlayVisible ( ) const
inlinevirtual

Return true if the overlay mode is activated, false otherwise.

Implements OSystem.

◆ getOverlayFormat()

Graphics::PixelFormat N3DS::OSystem_3DS::getOverlayFormat ( ) const
virtual

Return the pixel format description of the overlay.

See also
Graphics::PixelFormat

Implements OSystem.

◆ clearOverlay()

void N3DS::OSystem_3DS::clearOverlay ( )
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.

◆ grabOverlay()

void N3DS::OSystem_3DS::grabOverlay ( Graphics::Surface surface)
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.

◆ copyRectToOverlay()

void N3DS::OSystem_3DS::copyRectToOverlay ( const void *  buf,
int  pitch,
int  x,
int  y,
int  w,
int  h 
)
virtual

Blit a graphics buffer to the overlay.

In a sense, this is the reverse of grabOverlay.

Parameters
bufBuffer containing the graphics data source.
pitchPitch of the buffer (number of bytes in a scanline).
xx coordinate of the destination rectangle.
yy coordinate of the destination rectangle.
wWidth of the destination rectangle.
hHeight of the destination rectangle.
See also
copyRectToScreen
grabOverlay

Implements OSystem.

◆ getOverlayHeight()

virtual int16 N3DS::OSystem_3DS::getOverlayHeight ( )
virtual

Return the height of the overlay.

See also
getHeight

Implements OSystem.

◆ getOverlayWidth()

virtual int16 N3DS::OSystem_3DS::getOverlayWidth ( )
virtual

Return the width of the overlay.

See also
getWidth

Implements OSystem.

◆ displayMessageOnOSD()

void N3DS::OSystem_3DS::displayMessageOnOSD ( const Common::U32String msg)
overridevirtual

Display a message in an 'on-screen display'.

Displays a message in such a way that it is visible on or near the screen, for example in a transparent rectangle over the regular screen content, or in a message box beneath it.

The message is expected to be provided in the current TranslationManager charset.

Note
There is a default implementation in BaseBackend that uses a TimedMessageDialog to display the message. Hence, implementing this is optional.
Parameters
msgThe message to display on the screen.

Reimplemented from BaseBackend.

◆ displayActivityIconOnOSD()

void N3DS::OSystem_3DS::displayActivityIconOnOSD ( const Graphics::Surface icon)
overridevirtual

Display an icon that indicates background activity.

The icon is displayed in an 'on-screen display'. It is visible above the regular screen content or near it.

The caller keeps ownership of the icon. It is acceptable to free the surface just after the call.

There is no preferred pixel format for the icon. The backend should convert its copy of the icon to an appropriate format.

The caller must call this method again with a null pointer as a parameter to indicate the icon should no longer be displayed.

Parameters
iconThe icon to display on the screen.

Reimplemented from BaseBackend.

◆ showMouse()

bool N3DS::OSystem_3DS::showMouse ( bool  visible)
virtual

Show or hide the mouse cursor.

Currently, the backend is not required to immediately draw the mouse cursor on showMouse(true).

See also
Graphics::CursorManager::showMouse

Implements OSystem.

◆ warpMouse()

void N3DS::OSystem_3DS::warpMouse ( int  x,
int  y 
)
virtual

Move ("warp") the mouse cursor to the specified position in virtual screen coordinates.

Parameters
xNew x position of the mouse.
yNew y position of the mouse.

Implements OSystem.

◆ setMouseCursor()

void N3DS::OSystem_3DS::setMouseCursor ( const void *  buf,
uint  w,
uint  h,
int  hotspotX,
int  hotspotY,
uint32  keycolor,
bool  dontScale = false,
const Graphics::PixelFormat format = NULL,
const byte *  mask = NULL 
)
virtual

Set the bitmap used for drawing the cursor.

Parameters
bufPixmap data to be used.
wWidth of the mouse cursor.
hHeight of the mouse cursor.
hotspotXHorizontal offset from the left side to the hotspot.
hotspotYVertical offset from the top side to the hotspot.
keycolorTransparency 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.
dontScaleWhether 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.
formatPointer to the pixel format that the cursor graphic uses (0 means CLUT8).
maskA mask containing values from the CursorMaskValue enum for each cursor pixel.

Implements OSystem.

◆ setCursorPalette()

void N3DS::OSystem_3DS::setCursorPalette ( const byte *  colors,
uint  start,
uint  num 
)
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.

See also
setPalette
kFeatureCursorPalette

Reimplemented from OSystem.


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