aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/psp
diff options
context:
space:
mode:
authorsluicebox2019-11-15 01:38:21 -0800
committerEugene Sandulenko2019-11-19 00:20:40 +0100
commitb8390fa161c0c324af0e52a4f3a740cca9e9a479 (patch)
treee88f1e7cbb2c35c1b1c3319c9481c4edafca734d /backends/platform/psp
parent3238e523ee2ac442c7562830a85b347400b7da88 (diff)
downloadscummvm-rg350-b8390fa161c0c324af0e52a4f3a740cca9e9a479.tar.gz
scummvm-rg350-b8390fa161c0c324af0e52a4f3a740cca9e9a479.tar.bz2
scummvm-rg350-b8390fa161c0c324af0e52a4f3a740cca9e9a479.zip
GRAPHICS: Add interface for horizontal shake
Diffstat (limited to 'backends/platform/psp')
-rw-r--r--backends/platform/psp/default_display_client.cpp7
-rw-r--r--backends/platform/psp/default_display_client.h7
-rw-r--r--backends/platform/psp/osys_psp.cpp4
-rw-r--r--backends/platform/psp/osys_psp.h2
4 files changed, 11 insertions, 9 deletions
diff --git a/backends/platform/psp/default_display_client.cpp b/backends/platform/psp/default_display_client.cpp
index 1f0cef2e6c..91183a2238 100644
--- a/backends/platform/psp/default_display_client.cpp
+++ b/backends/platform/psp/default_display_client.cpp
@@ -157,9 +157,10 @@ void Screen::init() {
_renderer.setFullScreen(true);
}
-void Screen::setShakePos(int pos) {
- _shakePos = pos;
- _renderer.setOffsetOnScreen(0, pos);
+void Screen::setShakePos(int shakeXOffset, int shakeYOffset) {
+ _shakeXOffset = shakeXOffset;
+ _shakeYOffset = shakeYOffset;
+ _renderer.setOffsetOnScreen(0, shakeYOffset);
setDirty();
}
diff --git a/backends/platform/psp/default_display_client.h b/backends/platform/psp/default_display_client.h
index f2972e0b49..ed7239720e 100644
--- a/backends/platform/psp/default_display_client.h
+++ b/backends/platform/psp/default_display_client.h
@@ -78,14 +78,14 @@ public:
*/
class Screen : public DefaultDisplayClient {
public:
- Screen() : _shakePos(0) {
+ Screen() : _shakeXOffset(0), _shakeYOffset(0) {
memset(&_pixelFormat, 0, sizeof(_pixelFormat));
memset(&_frameBuffer, 0, sizeof(_frameBuffer));
}
void init();
bool allocate();
- void setShakePos(int pos);
+ void setShakePos(int shakeXOffset, int shakeYOffset);
void setScummvmPixelFormat(const Graphics::PixelFormat *format);
const Graphics::PixelFormat &getScummvmPixelFormat() const { return _pixelFormat; }
Graphics::Surface *lockAndGetForEditing();
@@ -93,7 +93,8 @@ public:
void setSize(uint32 width, uint32 height);
private:
- uint32 _shakePos;
+ uint32 _shakeXOffset;
+ uint32 _shakeYOffset;
Graphics::PixelFormat _pixelFormat;
Graphics::Surface _frameBuffer;
};
diff --git a/backends/platform/psp/osys_psp.cpp b/backends/platform/psp/osys_psp.cpp
index 006305c6fd..a65840669b 100644
--- a/backends/platform/psp/osys_psp.cpp
+++ b/backends/platform/psp/osys_psp.cpp
@@ -231,11 +231,11 @@ void OSystem_PSP::updateScreen() {
_pendingUpdate = !_displayManager.renderAll(); // if we didn't update, we have a pending update
}
-void OSystem_PSP::setShakePos(int shakeOffset) {
+void OSystem_PSP::setShakePos(int shakeXOffset, int shakeYOffset) {
DEBUG_ENTER_FUNC();
_displayManager.waitUntilRenderFinished();
_pendingUpdate = false;
- _screen.setShakePos(shakeOffset);
+ _screen.setShakePos(shakeXOffset, shakeYOffset);
}
void OSystem_PSP::showOverlay() {
diff --git a/backends/platform/psp/osys_psp.h b/backends/platform/psp/osys_psp.h
index 58354bfbce..ff9dd101d2 100644
--- a/backends/platform/psp/osys_psp.h
+++ b/backends/platform/psp/osys_psp.h
@@ -102,7 +102,7 @@ public:
Graphics::Surface *lockScreen();
void unlockScreen();
void updateScreen();
- void setShakePos(int shakeOffset);
+ void setShakePos(int shakeXOffset, int shakeYOffset);
// Overlay related
void showOverlay();