aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/ps2/Gs2dScreen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/platform/ps2/Gs2dScreen.cpp')
-rw-r--r--backends/platform/ps2/Gs2dScreen.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/backends/platform/ps2/Gs2dScreen.cpp b/backends/platform/ps2/Gs2dScreen.cpp
index 4829027f15..1de3c5e8c8 100644
--- a/backends/platform/ps2/Gs2dScreen.cpp
+++ b/backends/platform/ps2/Gs2dScreen.cpp
@@ -364,13 +364,6 @@ void Gs2dScreen::copyScreenRect(const uint8 *buf, int pitch, int x, int y, int w
}
}
-void Gs2dScreen::clearScreen(void) {
- WaitSema(g_DmacSema);
- memset(_screenBuf, 0, _width * _height);
- _screenChanged = true;
- SignalSema(g_DmacSema);
-}
-
void Gs2dScreen::setPalette(const uint32 *pal, uint8 start, uint16 num) {
assert(start + num <= 256);
@@ -393,11 +386,20 @@ void Gs2dScreen::grabPalette(uint32 *pal, uint8 start, uint16 num) {
}
}
-void Gs2dScreen::grabScreen(Graphics::Surface *surf) {
- assert(surf);
+Graphics::Surface *Gs2dScreen::lockScreen() {
WaitSema(g_DmacSema);
- surf->create(_width, _height, 1);
- memcpy(surf->pixels, _screenBuf, _width * _height);
+
+ _framebuffer.pixels = _screen->pixels;
+ _framebuffer.w = _screen->w;
+ _framebuffer.h = _screen->h;
+ _framebuffer.pitch = _screen->pitch;
+ _framebuffer.bytesPerPixel = 1;
+
+ return &_framebuffer;
+}
+
+void Gs2dScreen::unlockScreen() {
+ _screenChanged = true;
SignalSema(g_DmacSema);
}