BACKENDS: Add a function to return if the overlay is visible

This commit is contained in:
Cameron Cawley 2020-09-14 13:11:57 +01:00 committed by Eugene Sandulenko
parent 3f38c0f8d3
commit 31be074893
16 changed files with 32 additions and 2 deletions

View file

@ -91,6 +91,7 @@ public:
virtual void showOverlay() = 0; virtual void showOverlay() = 0;
virtual void hideOverlay() = 0; virtual void hideOverlay() = 0;
virtual bool isOverlayVisible() const = 0;
virtual Graphics::PixelFormat getOverlayFormat() const = 0; virtual Graphics::PixelFormat getOverlayFormat() const = 0;
virtual void clearOverlay() = 0; virtual void clearOverlay() = 0;
virtual void grabOverlay(void *buf, int pitch) const = 0; virtual void grabOverlay(void *buf, int pitch) const = 0;

View file

@ -72,8 +72,9 @@ public:
void setFocusRectangle(const Common::Rect& rect) override {} void setFocusRectangle(const Common::Rect& rect) override {}
void clearFocusRectangle() override {} void clearFocusRectangle() override {}
void showOverlay() override {} void showOverlay() override { _overlayVisible = true; }
void hideOverlay() override {} void hideOverlay() override { _overlayVisible = false; }
bool isOverlayVisible() const override { return _overlayVisible; }
Graphics::PixelFormat getOverlayFormat() const override { return Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0); } Graphics::PixelFormat getOverlayFormat() const override { return Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0); }
void clearOverlay() override {} void clearOverlay() override {}
void grabOverlay(void *buf, int pitch) const override {} void grabOverlay(void *buf, int pitch) const override {}
@ -89,6 +90,7 @@ public:
private: private:
uint _width, _height; uint _width, _height;
Graphics::PixelFormat _format; Graphics::PixelFormat _format;
bool _overlayVisible;
}; };
#endif #endif

View file

@ -77,6 +77,8 @@ public:
_forceRedraw = true; _forceRedraw = true;
} }
virtual bool isOverlayVisible() const override { return _overlayVisible; }
virtual void setShakePos(int shakeXOffset, int shakeYOffset) override { virtual void setShakePos(int shakeXOffset, int shakeYOffset) override {
if (_gameScreenShakeXOffset != shakeXOffset || _gameScreenShakeYOffset != shakeYOffset) { if (_gameScreenShakeXOffset != shakeXOffset || _gameScreenShakeYOffset != shakeYOffset) {
_gameScreenShakeXOffset = shakeXOffset; _gameScreenShakeXOffset = shakeXOffset;

View file

@ -202,6 +202,10 @@ void ModularGraphicsBackend::hideOverlay() {
_graphicsManager->hideOverlay(); _graphicsManager->hideOverlay();
} }
bool ModularGraphicsBackend::isOverlayVisible() const {
return _graphicsManager->isOverlayVisible();
}
Graphics::PixelFormat ModularGraphicsBackend::getOverlayFormat() const { Graphics::PixelFormat ModularGraphicsBackend::getOverlayFormat() const {
return _graphicsManager->getOverlayFormat(); return _graphicsManager->getOverlayFormat();
} }

View file

@ -102,6 +102,7 @@ public:
virtual void showOverlay() override final; virtual void showOverlay() override final;
virtual void hideOverlay() override final; virtual void hideOverlay() override final;
virtual bool isOverlayVisible() const override final;
virtual Graphics::PixelFormat getOverlayFormat() const override final; virtual Graphics::PixelFormat getOverlayFormat() const override final;
virtual void clearOverlay() override final; virtual void clearOverlay() override final;
virtual void grabOverlay(void *buf, int pitch) override final; virtual void grabOverlay(void *buf, int pitch) override final;

View file

@ -159,6 +159,7 @@ public:
void clearFocusRectangle(); void clearFocusRectangle();
void showOverlay(); void showOverlay();
void hideOverlay(); void hideOverlay();
bool isOverlayVisible() const { return _overlayVisible; }
Graphics::PixelFormat getOverlayFormat() const; Graphics::PixelFormat getOverlayFormat() const;
void clearOverlay(); void clearOverlay();
void grabOverlay(void *buf, int pitch); void grabOverlay(void *buf, int pitch);

View file

@ -154,6 +154,7 @@ public:
// Overlay // Overlay
int16 getOverlayHeight(); int16 getOverlayHeight();
int16 getOverlayWidth(); int16 getOverlayWidth();
bool isOverlayVisible() const { return _overlay_visible; }
void showOverlay(); void showOverlay();
void hideOverlay(); void hideOverlay();
void clearOverlay(); void clearOverlay();

View file

@ -486,6 +486,10 @@ void OSystem_DS::hideOverlay() {
DS::displayMode8Bit(); DS::displayMode8Bit();
} }
bool OSystem_DS::isOverlayVisible() const {
return !DS::getIsDisplayMode8Bit();
}
void OSystem_DS::clearOverlay() { void OSystem_DS::clearOverlay() {
memset((u16 *) DS::get16BitBackBuffer(), 0, 512 * 256 * 2); memset((u16 *) DS::get16BitBackBuffer(), 0, 512 * 256 * 2);
// consolePrintf("clearovl\n"); // consolePrintf("clearovl\n");

View file

@ -102,6 +102,7 @@ public:
virtual void showOverlay(); virtual void showOverlay();
virtual void hideOverlay(); virtual void hideOverlay();
virtual bool isOverlayVisible() const;
virtual void clearOverlay(); virtual void clearOverlay();
virtual void grabOverlay(void *buf, int pitch); virtual void grabOverlay(void *buf, int pitch);
virtual void copyRectToOverlay(const void *buf, int pitch, int x, int y, int w, int h); virtual void copyRectToOverlay(const void *buf, int pitch, int x, int y, int w, int h);

View file

@ -166,6 +166,7 @@ public:
virtual void showOverlay(); virtual void showOverlay();
virtual void hideOverlay(); virtual void hideOverlay();
virtual bool isOverlayVisible() const { return _videoContext->overlayVisible; }
virtual void clearOverlay(); virtual void clearOverlay();
virtual void grabOverlay(void *buf, int pitch); virtual void grabOverlay(void *buf, int pitch);
virtual void copyRectToOverlay(const void *buf, int pitch, int x, int y, int w, int h); virtual void copyRectToOverlay(const void *buf, int pitch, int x, int y, int w, int h);

View file

@ -154,6 +154,7 @@ public:
virtual void showOverlay(); virtual void showOverlay();
virtual void hideOverlay(); virtual void hideOverlay();
virtual bool isOverlayVisible() const { return _videoContext->overlayVisible; }
virtual void clearOverlay(); virtual void clearOverlay();
virtual void grabOverlay(void *buf, int pitch); virtual void grabOverlay(void *buf, int pitch);
virtual void copyRectToOverlay(const void *buf, int pitch, int x, int y, int w, int h); virtual void copyRectToOverlay(const void *buf, int pitch, int x, int y, int w, int h);

View file

@ -167,6 +167,7 @@ public:
virtual void showOverlay(); virtual void showOverlay();
virtual void hideOverlay(); virtual void hideOverlay();
virtual bool isOverlayVisible() const { return _overlayVisible; }
virtual void clearOverlay(); virtual void clearOverlay();
virtual void grabOverlay(void *buf, int pitch); virtual void grabOverlay(void *buf, int pitch);
virtual void copyRectToOverlay(const void *buf, int pitch, int x, int y, int w, int h); virtual void copyRectToOverlay(const void *buf, int pitch, int x, int y, int w, int h);

View file

@ -246,6 +246,11 @@ void OSystem_PSP::hideOverlay() {
_cursor.useGlobalScaler(true); // mouse needs to be scaled with screen _cursor.useGlobalScaler(true); // mouse needs to be scaled with screen
} }
bool OSystem_PSP::isOverlayVisible() const {
DEBUG_ENTER_FUNC();
return _overlay.isVisible();
}
void OSystem_PSP::clearOverlay() { void OSystem_PSP::clearOverlay() {
DEBUG_ENTER_FUNC(); DEBUG_ENTER_FUNC();
_displayManager.waitUntilRenderFinished(); _displayManager.waitUntilRenderFinished();

View file

@ -104,6 +104,7 @@ public:
// Overlay related // Overlay related
void showOverlay(); void showOverlay();
void hideOverlay(); void hideOverlay();
bool isOverlayVisible() const;
void clearOverlay(); void clearOverlay();
void grabOverlay(void *buf, int pitch); void grabOverlay(void *buf, int pitch);
void copyRectToOverlay(const void *buf, int pitch, int x, int y, int w, int h); void copyRectToOverlay(const void *buf, int pitch, int x, int y, int w, int h);

View file

@ -176,6 +176,7 @@ public:
virtual void showOverlay(); virtual void showOverlay();
virtual void hideOverlay(); virtual void hideOverlay();
virtual bool isOverlayVisible() const { return _overlayVisible; }
virtual void clearOverlay(); virtual void clearOverlay();
virtual void grabOverlay(void *buf, int pitch); virtual void grabOverlay(void *buf, int pitch);
virtual void copyRectToOverlay(const void *buf, int pitch, virtual void copyRectToOverlay(const void *buf, int pitch,

View file

@ -999,6 +999,9 @@ public:
/** Deactivate the overlay mode. */ /** Deactivate the overlay mode. */
virtual void hideOverlay() = 0; virtual void hideOverlay() = 0;
/** Returns true if the overlay mode is activated, false otherwise. */
virtual bool isOverlayVisible() const = 0;
/** /**
* Returns the pixel format description of the overlay. * Returns the pixel format description of the overlay.
* @see Graphics::PixelFormat * @see Graphics::PixelFormat