diff options
author | Paul Gilbert | 2017-07-10 19:24:10 -0400 |
---|---|---|
committer | Paul Gilbert | 2017-07-10 19:24:10 -0400 |
commit | 7fc69ebdea10101d8d59eed400eff9da7c0b3b4c (patch) | |
tree | b637f300acb3c2d233e2632817275a3cbb183c6c /engines/titanic/support/transparency_surface.h | |
parent | a32ee25a28b074df197cd232d24fd544d633d542 (diff) | |
download | scummvm-rg350-7fc69ebdea10101d8d59eed400eff9da7c0b3b4c.tar.gz scummvm-rg350-7fc69ebdea10101d8d59eed400eff9da7c0b3b4c.tar.bz2 scummvm-rg350-7fc69ebdea10101d8d59eed400eff9da7c0b3b4c.zip |
TITANIC: Inline CTransparencySurface methods at wjp's suggestion
Diffstat (limited to 'engines/titanic/support/transparency_surface.h')
-rw-r--r-- | engines/titanic/support/transparency_surface.h | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/engines/titanic/support/transparency_surface.h b/engines/titanic/support/transparency_surface.h index 0970de46f5..6b726d6c4e 100644 --- a/engines/titanic/support/transparency_surface.h +++ b/engines/titanic/support/transparency_surface.h @@ -46,7 +46,10 @@ private: /** * Returns a a pixel from the transparency surface */ - uint getPixel() const; + inline uint getPixel() const { + byte pixel = *(const byte *)_surface->getBasePtr(_pos.x, _pos.y); + return pixel; + } public: /** * Constructor @@ -56,32 +59,48 @@ public: /** * Sets the row to get transparencies from */ - void setRow(int yp) { _pos.y = yp; } + inline void setRow(int yp) { _pos.y = yp; } /** * Sets the column to get transparencies from */ - void setCol(int xp) { _pos.x = xp; } + inline void setCol(int xp) { _pos.x = xp; } /** * Moves reading position horizontally by a single pixel */ - int moveX(); + inline int moveX() { + if (++_pos.x >= _surface->w) { + _pos.x = 0; + ++_pos.y; + } + + return 1; + } /** * Returns the alpha value for the pixel (0-31) */ - uint getAlpha() const; + inline uint getAlpha() const { + byte pixel = getPixel(); + return _opaqueColor ? 0xFF - pixel : pixel; + } /** * Returns true if the pixel is opaque */ - bool isPixelOpaque() const; + inline bool isPixelOpaque() const { + byte pixel = getPixel(); + return _opaqueColor ? pixel >= 0xf0 : pixel < 0x10; + } /** * Returns true if the pixel is completely transparent */ - bool isPixelTransparent() const; + inline bool isPixelTransparent() const { + byte pixel = getPixel(); + return _transparentColor ? pixel >= 0xf0 : pixel < 0x10; + } }; } // End of namespace Titanic |