diff options
author | Peter Kohaut | 2019-08-31 23:06:30 +0200 |
---|---|---|
committer | Peter Kohaut | 2019-08-31 23:09:19 +0200 |
commit | a7399c5111cc7ebeea284498a1ee5ac7542bb96d (patch) | |
tree | f89653b084b58ce909d4487a8251338acaf236d0 /engines/bladerunner/bladerunner.h | |
parent | 6fc73734c12248947ff2214ffd517a32816031c4 (diff) | |
download | scummvm-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.h | 19 |
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); |