diff options
Diffstat (limited to 'sword2/driver/d_draw.h')
-rw-r--r-- | sword2/driver/d_draw.h | 242 |
1 files changed, 0 insertions, 242 deletions
diff --git a/sword2/driver/d_draw.h b/sword2/driver/d_draw.h deleted file mode 100644 index e9b27c7f2c..0000000000 --- a/sword2/driver/d_draw.h +++ /dev/null @@ -1,242 +0,0 @@ -/* Copyright (C) 1994-1998 Revolution Software Ltd. - * Copyright (C) 2003-2005 The ScummVM project - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * $Header$ - */ - -#ifndef D_DRAW_H -#define D_DRAW_H - -#include "common/rect.h" - -namespace Sword2 { - -// This is the maximum mouse cursor size in the SDL backend - -#define MAX_MOUSE_W 80 -#define MAX_MOUSE_H 80 - -#define RENDERAVERAGETOTAL 4 - -#define BLOCKWIDTH 64 -#define BLOCKHEIGHT 64 -#define MAXLAYERS 5 - -#define PALTABLESIZE 64 * 64 * 64 - -// Maximum scaled size of a sprite -#define SCALE_MAXWIDTH 512 -#define SCALE_MAXHEIGHT 512 - -// Dirty grid cell size -#define CELLWIDE 10 -#define CELLDEEP 20 - -#if !defined(__GNUC__) - #pragma START_PACK_STRUCTS -#endif - -struct MouseAnim { - uint8 runTimeComp; // type of runtime compression used for the - // frame data - uint8 noAnimFrames; // number of frames in the anim - int8 xHotSpot; - int8 yHotSpot; - uint8 mousew; - uint8 mouseh; -} GCC_PACK; - -#if !defined(__GNUC__) - #pragma END_PACK_STRUCTS -#endif - -struct BlockSurface { - byte data[BLOCKWIDTH * BLOCKHEIGHT]; - bool transparent; -}; - -class Graphics { - friend class MoviePlayer; - -private: - Sword2Engine *_vm; - - byte *_buffer; - byte *_dirtyGrid; - - uint16 _gridWide; - uint16 _gridDeep; - - int32 _renderCaps; - int8 _renderLevel; - - uint8 _menuStatus[2]; - byte *_icons[2][RDMENU_MAXPOCKETS]; - uint8 _pocketStatus[2][RDMENU_MAXPOCKETS]; - - uint8 _iconCount; - - bool _needFullRedraw; - - byte _paletteMatch[PALTABLESIZE]; - - uint8 _fadeStatus; - - int32 _fadeStartTime; - int32 _fadeTotalTime; - - uint8 _mouseFrame; - byte *_mouseSprite; - struct MouseAnim *_mouseAnim; - struct MouseAnim *_luggageAnim; - int32 *_mouseOffsets; - int32 *_luggageOffset; - - // Scroll variables. _scrollX and _scrollY hold the current scroll - // position, and _scrollXTarget and _scrollYTarget are the target - // position for the end of the game cycle. - - int16 _scrollX; - int16 _scrollY; - - int16 _scrollXTarget; - int16 _scrollYTarget; - int16 _scrollXOld; - int16 _scrollYOld; - - int16 _parallaxScrollX; // current x offset to link a sprite to the - // parallax layer - int16 _parallaxScrollY; // current y offset to link a sprite to the - // parallax layer - int16 _locationWide; - int16 _locationDeep; - - uint16 _layer; - - int32 _initialTime; - int32 _startTime; - int32 _totalTime; - int32 _renderAverageTime; - int32 _framesPerGameCycle; - bool _renderTooSlow; - - uint8 _xBlocks[MAXLAYERS]; - uint8 _yBlocks[MAXLAYERS]; - - // An array of sub-blocks, one for each of the parallax layers. - - BlockSurface **_blockSurfaces[MAXLAYERS]; - - uint16 _xScale[SCALE_MAXWIDTH]; - uint16 _yScale[SCALE_MAXHEIGHT]; - - byte *_lightMask; - - void clearIconArea(int menu, int pocket, Common::Rect *r); - - void decompressMouse(byte *decomp, byte *comp, int width, int height, int pitch, int xOff = 0, int yOff = 0); - - void fadeServer(void); - - void scaleImageFast(byte *dst, uint16 dstPitch, uint16 dstWidth, - uint16 dstHeight, byte *src, uint16 srcPitch, uint16 srcWidth, - uint16 srcHeight); - void scaleImageGood(byte *dst, uint16 dstPitch, uint16 dstWidth, - uint16 dstHeight, byte *src, uint16 srcPitch, uint16 srcWidth, - uint16 srcHeight, byte *backbuf); - - void updateRect(Common::Rect *r); - - void blitBlockSurface(BlockSurface *s, Common::Rect *r, Common::Rect *clipRect); - - void mirrorSprite(byte *dst, byte *src, int16 w, int16 h); - int32 decompressRLE256(byte *dest, byte *source, int32 decompSize); - void unwindRaw16(byte *dest, byte *source, uint8 blockSize, byte *colTable); - int32 decompressRLE16(byte *dest, byte *source, int32 decompSize, byte *colTable); - - -public: - Graphics(Sword2Engine *vm, int16 width, int16 height); - ~Graphics(); - - // Game screen metrics - int16 _screenWide; - int16 _screenDeep; - - byte _palette[256 * 4]; - - byte *getScreen(void) { return _buffer; } - - int8 getRenderLevel(void); - void setRenderLevel(int8 level); - - void clearScene(void); - - void processMenu(void); - int32 showMenu(uint8 menu); - int32 hideMenu(uint8 menu); - int32 setMenuIcon(uint8 menu, uint8 pocket, byte *icon); - void closeMenuImmediately(void); - - void markAsDirty(int16 x0, int16 y0, int16 x1, int16 y1); - void updateDisplay(bool redrawScene = true); - void setNeedFullRedraw(void); - - void setPalette(int16 startEntry, int16 noEntries, byte *palette, uint8 setNow); - void updatePaletteMatchTable(byte *data); - uint8 quickMatch(uint8 r, uint8 g, uint8 b); - int32 fadeUp(float time = 0.75); - int32 fadeDown(float time = 0.75); - uint8 getFadeStatus(void); - void dimPalette(void); - void waitForFade(void); - - int32 setMouseAnim(byte *ma, int32 size, int32 mouseFlash); - int32 setLuggageAnim(byte *la, int32 size); - int32 animateMouse(void); - - void drawMouse(void); - - void resetRenderEngine(void); - - void setScrollTarget(int16 sx, int16 sy); - void initialiseRenderCycle(void); - void startRenderCycle(void); - bool endRenderCycle(void); - void renderParallax(Parallax *p, int16 layer); - void setLocationMetrics(uint16 w, uint16 h); - int32 initialiseBackgroundLayer(Parallax *p); - void closeBackgroundLayer(void); - - void plotPoint(int16 x, int16 y, uint8 colour); - void drawLine(int16 x1, int16 y1, int16 x2, int16 y2, uint8 colour); -#ifdef BACKEND_8BIT - void plotYUV(byte *lut, int width, int height, byte *const *dat); -#endif - - - int32 createSurface(SpriteInfo *s, byte **surface); - void drawSurface(SpriteInfo *s, byte *surface, Common::Rect *clipRect = NULL); - void deleteSurface(byte *surface); - int32 drawSprite(SpriteInfo *s); - int32 openLightMask(SpriteInfo *s); - int32 closeLightMask(void); -}; - -} // End of namespace Sword2 - -#endif |