Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/trunk/src/lib/graphics/graphics_engine.h @ 4529

Last change on this file since 4529 was 4519, checked in by bensch, 19 years ago

orxonox/trunk: changed all getInstances into inline functions to save some (minor) time

File size: 2.7 KB
Line 
1/*!
2    \file graphics_engine.h
3   
4    \brief defines a Interface between orxonox and graphical input
5
6    handles graphical SDL-initialisation, textures, resolutions, and so on
7*/
8
9#ifndef _GRAPHICS_ENGINE_H
10#define _GRAPHICS_ENGINE_H
11
12#include "base_object.h"
13
14#include "sdlincl.h"
15#include "glincl.h"
16
17// Forward Declaration
18class Text;
19
20//! class to handle graphics
21/**
22   handles graphical SDL-initialisation, textures, resolutions, and so on
23*/   
24class GraphicsEngine : public BaseObject
25{
26 public:
27  virtual ~GraphicsEngine();
28  /** \returns a Pointer to the only object of this Class */
29  inline static GraphicsEngine* getInstance(void) { if (!singletonRef) singletonRef = new GraphicsEngine();  return singletonRef; };
30
31  int initVideo();
32  int setGLattribs(void);
33  int setResolution(int width, int height, int bpp);
34  void setFullscreen(bool fullscreen = false);
35  static void setBackgroundColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha = 1.0);
36
37  /** \returns the x resolution */
38  inline int getResolutionX(void) const {return this->resolutionX;}
39  /** \returns the y resolution */
40  inline int getResolutionY(void) const {return this->resolutionY;}
41  /** \returns the Bits Per Pixel */
42  inline int getbbp(void) const {return this->bitsPerPixel;}
43  int resolutionChanged(SDL_ResizeEvent* resizeInfo);
44  void listModes(void);
45
46  static bool texturesEnabled;
47
48  static void enter2DMode(void);
49  static void leave2DMode(void);
50
51  static void storeMatrices(void);
52  static GLdouble modMat[16];
53  static GLdouble projMat[16];
54  static GLint viewPort[4];
55 
56  void tick(float dt);
57  void displayFPS(bool display);
58
59
60 private:
61  GraphicsEngine();
62  static GraphicsEngine* singletonRef;
63
64 private:
65  SDL_Surface*   screen;          //!< the screen we draw to
66  int            resolutionX;     //!< the X-resoultion of the screen
67  int            resolutionY;     //!< the Y-resolution of the screen
68  int            bitsPerPixel;    //!< the bits per pixels of the screen
69  bool           fullscreen;      //!< if we are in fullscreen mode
70  Uint32         videoFlags;      //!< flags for video
71  SDL_Rect**     videoModes;      //!< list of resolutions
72 
73  bool           bDisplayFPS;     //!< is true if the fps should be displayed
74  float          currentFPS;      //!< the current frame rate: frames per seconds
75  float          maxFPS;          //!< maximal frame rate we ever got since start of the game
76  float          minFPS;          //!< minimal frame rate we ever got since start
77
78  Text*          geTextCFPS;      //!< Text for the current FPS
79  Text*          geTextMaxFPS;    //!< Text for the max FPS
80  Text*          geTextMinFPS;    //!< Text for the min FPS
81
82};
83
84#endif /* _GRAPHICS_ENGINE_H */
Note: See TracBrowser for help on using the repository browser.