#ifndef GAMESCREEN_H
#define GAMESCREEN_H

#include "Screen.h"
#include "../Renderer.h"
#include "../Assets.h"
#include "../Mesh.h"
#include "../Camera.h"
#include "../input/InputHandler.h"

#include <entityx/entityx.h>

class GameScreen : public Screen
{
  public:
    GameScreen(Renderer *renderer, Assets *assets);
    ~GameScreen();

    virtual void hide() override;
    virtual void pause() override;
    virtual void render(unsigned int delta) override;
    virtual void update(unsigned int delta) override;
    virtual void resize() override;
    virtual void resume() override;
    virtual void show() override;

  private:
    //foreign managed lifetime
    Renderer *renderer;
    Assets *assets;

    //Lifetime managed by class
    InputHandler *inputHandler;
    OrtographicCamera *camera;
    Mesh *obj;

    //Part of the class
    entityx::EntityX ex;
};

#endif