1 /* ScummVM - Graphic Adventure Engine 2 * 3 * ScummVM is the legal property of its developers, whose names 4 * are too numerous to list here. Please refer to the COPYRIGHT 5 * file distributed with this source distribution. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 * 21 */ 22 23 #ifndef GROOVIE_GRAPHICS_H 24 #define GROOVIE_GRAPHICS_H 25 26 #include "graphics/surface.h" 27 28 namespace Groovie { 29 30 class GroovieEngine; 31 32 class GraphicsMan { 33 public: 34 GraphicsMan(GroovieEngine *vm); 35 ~GraphicsMan(); 36 37 // Buffers 38 void update(); 39 void change(); 40 void mergeFgAndBg(); 41 void switchToFullScreen(bool fullScreen); isFullScreen()42 bool isFullScreen() { return (_foreground.h == 480); } 43 void updateScreen(Graphics::Surface *source); 44 Graphics::Surface _foreground; // The main surface that most things are drawn to 45 Graphics::Surface _background; // Used occasionally, mostly (only?) in puzzles 46 47 // Palette fading 48 bool isFading(); 49 void fadeIn(byte *pal); 50 void fadeOut(); 51 52 private: 53 GroovieEngine *_vm; 54 55 bool _changed; 56 57 // Palette fading 58 void applyFading(int step); 59 int _fading; 60 byte _paletteFull[256 * 3]; 61 uint32 _fadeStartTime; 62 }; 63 64 } // End of Groovie namespace 65 66 #endif // GROOVIE_GRAPHICS_H 67