Program Listing for File app.hpp

Return to documentation for file (DrakoEngineLib/app.hpp)

#pragma once

namespace sf {
    struct Event;
}

namespace DrakoEngine {

    class DRAKOENGINELIB_EXPORTED App {
    public:

        enum class Result {
            Failure = 0,
            Success,
        };

        App();

        virtual ~App();

        virtual Result Startup();

        virtual Result Shutdown();

        virtual void HandleEvent(sf::Event const & event);

        virtual void Update();

        virtual void Render();

        Result Run(int argc, char * argv[]);

        //virtual Result SoftReset();

        //virtual Result HardReset();

    protected:

        virtual Result ClientRun();

    public:

        vec<str> Arguments;

    protected:

        sf::RenderWindow Window;
        bool ShouldClose;
        bool DoSoftReset;
        bool DoHardReset;
    };

}