diff options
author | Matthew Stewart | 2018-07-23 05:36:32 -0400 |
---|---|---|
committer | Eugene Sandulenko | 2018-08-09 08:37:30 +0200 |
commit | eff87179da0554446837a732bb6855f6c7f8a890 (patch) | |
tree | 87ace1e7847dcf6d589f60a33fb5acfcdc1d91e7 /engines/startrek/graphics.cpp | |
parent | 565bf0e96750588e8a7f6816e79683e97896f8de (diff) | |
download | scummvm-rg350-eff87179da0554446837a732bb6855f6c7f8a890.tar.gz scummvm-rg350-eff87179da0554446837a732bb6855f6c7f8a890.tar.bz2 scummvm-rg350-eff87179da0554446837a732bb6855f6c7f8a890.zip |
STARTREK: Half-done implementation of drawR3Shape
Handles drawing, scaling, probably rotating objects in space.
Diffstat (limited to 'engines/startrek/graphics.cpp')
-rw-r--r-- | engines/startrek/graphics.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/engines/startrek/graphics.cpp b/engines/startrek/graphics.cpp index 6fe1c8f9ba..1612dc0347 100644 --- a/engines/startrek/graphics.cpp +++ b/engines/startrek/graphics.cpp @@ -105,6 +105,10 @@ void Graphics::fillBackgroundRect(const Common::Rect &rect, byte color) { } } +byte *Graphics::getBackgroundPixels() { + return _backgroundImage->pixels; +} + void Graphics::clearScreenAndPriBuffer() { Common::fill(_priData, _priData + sizeof(_priData), 0); @@ -131,6 +135,17 @@ void Graphics::loadPalette(const Common::String &paletteName) { lutStream->read(_lutData, 256); } +void Graphics::copyRectBetweenBitmaps(Bitmap *destBitmap, int destX, int destY, Bitmap *srcBitmap, int srcX, int srcY, int width, int height) { + byte *src = srcBitmap->pixels + srcX + srcY * srcBitmap->width; + byte *dest = destBitmap->pixels + destX + destY * destBitmap->width; + + for (int y = 0; y < height; y++) { + memcpy(dest, src, width); + src += srcBitmap->width; + dest += destBitmap->width; + } +} + void Graphics::fadeinScreen() { while (_paletteFadeLevel <= 100) { TrekEvent event; |