aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
authorCameron Cawley2019-11-09 14:52:05 +0000
committerFilippos Karapetis2019-11-10 01:25:46 +0200
commitd1fa1154fe5758fe48928062ff9b43d1bcfc7770 (patch)
treeab6e301f5a000c0fdeea52a83c0a92b59b55d68a /backends
parenta00ccb215fcf5657aea797877285c1e7e6cac5f0 (diff)
downloadscummvm-rg350-d1fa1154fe5758fe48928062ff9b43d1bcfc7770.tar.gz
scummvm-rg350-d1fa1154fe5758fe48928062ff9b43d1bcfc7770.tar.bz2
scummvm-rg350-d1fa1154fe5758fe48928062ff9b43d1bcfc7770.zip
BACKENDS: Fix using fillScreen in non-paletted screen modes
Diffstat (limited to 'backends')
-rw-r--r--backends/base-backend.cpp4
-rw-r--r--backends/graphics/opengl/opengl-graphics.cpp5
-rw-r--r--backends/graphics/surfacesdl/surfacesdl-graphics.cpp4
3 files changed, 4 insertions, 9 deletions
diff --git a/backends/base-backend.cpp b/backends/base-backend.cpp
index 3e95c3e26a..9164b8d721 100644
--- a/backends/base-backend.cpp
+++ b/backends/base-backend.cpp
@@ -57,7 +57,7 @@ void BaseBackend::initBackend() {
void BaseBackend::fillScreen(uint32 col) {
Graphics::Surface *screen = lockScreen();
- if (screen && screen->getPixels())
- memset(screen->getPixels(), col, screen->h * screen->pitch);
+ if (screen)
+ screen->fillRect(Common::Rect(screen->w, screen->h), col);
unlockScreen();
}
diff --git a/backends/graphics/opengl/opengl-graphics.cpp b/backends/graphics/opengl/opengl-graphics.cpp
index 9d11925613..f40b84c2bf 100644
--- a/backends/graphics/opengl/opengl-graphics.cpp
+++ b/backends/graphics/opengl/opengl-graphics.cpp
@@ -452,11 +452,6 @@ void OpenGLGraphicsManager::copyRectToScreen(const void *buf, int pitch, int x,
}
void OpenGLGraphicsManager::fillScreen(uint32 col) {
- // FIXME: This does not conform to the OSystem specs because fillScreen
- // is always taking CLUT8 color values and use color indexed mode. This is,
- // however, plain odd and probably was a forgotten when we introduced
- // RGB support. Thus, we simply do the "sane" thing here and hope OSystem
- // gets fixed one day.
_gameScreen->fill(col);
}
diff --git a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
index 3b2e3eaf6f..7cddd4443f 100644
--- a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
+++ b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
@@ -1610,8 +1610,8 @@ void SurfaceSdlGraphicsManager::unlockScreen() {
void SurfaceSdlGraphicsManager::fillScreen(uint32 col) {
Graphics::Surface *screen = lockScreen();
- if (screen && screen->getPixels())
- memset(screen->getPixels(), col, screen->h * screen->pitch);
+ if (screen)
+ screen->fillRect(Common::Rect(screen->w, screen->h), col);
unlockScreen();
}