adrigm
11/21/2013 - 10:25 AM

App.hpp

class GDE_API App : sf::NonCopyable
{
        static App* uniqueInstance;

public:
        /// Constante width por defecto
        static const unsigned int DEFAULT_VIDEO_WIDTH = 640;
        /// Constante height por defecto
        static const unsigned int DEFAULT_VIDEO_HEIGHT = 480;
        /// Constante bpp por defecto
        static const unsigned int DEFAULT_VIDEO_BPP = 32;

        static App* instance();

        static void release();

        sf::RenderWindow& getWindow();

        bool isRunning() const;

        void quit(sf::Int16 theExitCode);
        
        void setFirstScene(Scene* scene);

        sf::Int16 run();
        
private:
        /// Ventana principal de la aplicación
        sf::RenderWindow window;
        /// Verdadero si la aplicación se está ejecutando
        bool running;
        /// Código de salida de la aplicación
        sf::Int16 exitCode;
        /// Puntero al SceneManager
        SceneManager* sceneManager;
        /// Escena inicial. Punto de entrada de la aplicación
        Scene* initialScene;

        App();

        ~App();

        void createWindow();

        void init();

        void gameLoop();

        void cleanup();
}; // class App