aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/bladerunner.h
diff options
context:
space:
mode:
authorPeter Kohaut2019-08-31 23:06:30 +0200
committerPeter Kohaut2019-08-31 23:09:19 +0200
commita7399c5111cc7ebeea284498a1ee5ac7542bb96d (patch)
treef89653b084b58ce909d4487a8251338acaf236d0 /engines/bladerunner/bladerunner.h
parent6fc73734c12248947ff2214ffd517a32816031c4 (diff)
downloadscummvm-rg350-a7399c5111cc7ebeea284498a1ee5ac7542bb96d.tar.gz
scummvm-rg350-a7399c5111cc7ebeea284498a1ee5ac7542bb96d.tar.bz2
scummvm-rg350-a7399c5111cc7ebeea284498a1ee5ac7542bb96d.zip
BLADERUNNER: Use best pixel format on every platform
Updated all drawing routines to be pixel format agnostic. Might decrease performance.
Diffstat (limited to 'engines/bladerunner/bladerunner.h')
-rw-r--r--engines/bladerunner/bladerunner.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/engines/bladerunner/bladerunner.h b/engines/bladerunner/bladerunner.h
index 68c8c9b448..8aee6b6416 100644
--- a/engines/bladerunner/bladerunner.h
+++ b/engines/bladerunner/bladerunner.h
@@ -184,6 +184,8 @@ public:
Actor *_actors[kActorCount];
Actor *_playerActor;
+ Graphics::PixelFormat _screenPixelFormat;
+
Graphics::Surface _surfaceFront;
Graphics::Surface _surfaceBack;
@@ -327,8 +329,21 @@ static inline const Graphics::PixelFormat gameDataPixelFormat() {
}
static inline const Graphics::PixelFormat screenPixelFormat() {
- // Should be a format supported by Android port
- return Graphics::PixelFormat(2, 5, 5, 5, 1, 11, 6, 1, 0);
+ return ((BladeRunnerEngine*)g_engine)->_screenPixelFormat;
+}
+
+static inline void drawPixel(Graphics::Surface &surface, void* dst, uint32 value) {
+ switch (surface.format.bytesPerPixel) {
+ case 1:
+ *(uint8*)dst = (uint8)value;
+ break;
+ case 2:
+ *(uint16*)dst = (uint16)value;
+ break;
+ case 4:
+ *(uint32*)dst = (uint32)value;
+ break;
+ }
}
void blit(const Graphics::Surface &src, Graphics::Surface &dst);