1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */
#ifndef SPRING_APP
#define SPRING_APP
#include <string>
#include <boost/cstdint.hpp>
class CmdLineParams;
class CGameController;
union SDL_Event;
/**
* @brief Spring App
*
* Main Spring application class launched by main()
*/
class SpringApp
{
public:
SpringApp();
~SpringApp();
int Run(int argc, char *argv[]); //!< Run game loop
static void Shutdown(); //!< Shuts down application
protected:
bool Initialize(); //!< Initialize app
void ParseCmdLine(); //!< Parse command line
void Startup(); //!< Parses startup data (script etc.) and starts SelectMenu or PreGame
bool InitWindow(const char* title); //!< Initializes window
static void InitOpenGL(); //!< Initializes OpenGL
static void LoadFonts(); //!< Initialize glFonts (font & smallFont)
static bool SetSDLVideoMode(); //!< Sets SDL video mode
int Update(); //!< Run simulation and draw
bool UpdateSim(CGameController *ac);
static bool GetDisplayGeometry();
static void SetupViewportGeometry();
static void RestoreWindowPosition();
static void SaveWindowPosition();
/**
* @brief command line
*
* Pointer to instance of commandline parser
*/
CmdLineParams* cmdline;
private:
bool MainEventHandler(const SDL_Event& ev);
private:
std::string binaryName;
};
/**
* @brief current active controller
*
* Pointer to the currently active controller
* (could be a PreGame, could be a Game, etc)
*/
extern CGameController* activeController;
#endif
|