00001
#ifndef DEF_GFXENG_H
00002
#define DEF_GFXENG_H 1
00003
00004
#define BAR_HEIGHT 138
00005
#define ICON_SIZE 46
00006
#define DFONT 10
00007
00008
#define UPDATE_NOTHING 0x00
00009
#define UPDATE_BAR 0x01
00010
#define UPDATE_MENU 0x02
00011
#define UPDATE_ALL 0x03
00012
00018 class GraphicsEngine {
00019
friend class GraphicConfigMenu;
00020
public:
00021
GraphicsEngine();
00022 ~
GraphicsEngine();
00024
void update(Uint8);
00026
void draw();
00028
void resize(Uint16 width, Uint16 height);
00029
void togglePlayerBar();
00030
void toggleFPS();
00031
void toggleFullScreen();
00032
void setShowDebug();
00033
void unsetShowDebug();
00034
void toggleShowDebug();
00035
void setMenuBG(SDL_Surface* menu_background=NULL);
00036
const SDL_Rect& addShift(Sint16,Sint16);
00037
const SDL_Rect&
setShift(Sint16,Sint16);
00038
const SDL_Rect& getShift() {
00039
return shift;
00040 }
00041
void resetShift() {
00042 shift.x=shift.y=0;
00043 }
00044
void drawRectangle(SDL_Rect rect, Uint8 border=1, Uint32 color=0);
00045 SDL_Surface* createRGBSurface(Uint16 width, Uint16 height);
00046 SDL_Surface* createRGBASurface(Uint16 width, Uint16 height);
00047 SDL_Surface* createRGBScreenSurface();
00048 SDL_Surface* createRGBAScreenSurface();
00049
protected:
00051 const Uint32
rmask;
00052
const Uint32 gmask;
00053
const Uint32 bmask;
00054
const Uint32 amask;
00056 Uint32
vflags;
00058 SDL_Surface*
screen;
00060 SDL_Rect
vis_map;
00062 SDL_Surface*
menubg;
00064 SDL_Rect
bar;
00065
bool show_bar;
00066
bool show_fps;
00067
bool show_debug;
00068
00069
bool fullscreen;
00070
00071 Uint8 updatetype;
00072
00073 SDL_Rect shift;
00075 EmptyAnimationPtr
lifeimage;
00076
protected:
00080
inline void drawGameScene();
00081
inline void drawEditScene();
00084
inline void drawPlayerBar();
00086
inline void drawFPS();
00091
inline void drawMenu();
00092
inline void drawBox();
00093
inline void resetMenuBG();
00094
inline SDL_Rect clipToBG(SDL_Rect dest)
const;
00096
inline SDL_Rect
setShift(SDL_Rect center);
00098
inline SDL_Rect*
shiftMapArea(SDL_Rect& area,
const SDL_Rect& shift);
00100
inline void setGameMenuBG();
00101 };
00102
00103
#endif