#ifndef SCENEOPENGL_H_INCLUDED
#define SCENEOPENGL_H_INCLUDED

// Includes GLM
#include <glm/glm.hpp>
#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/transform.hpp>
#include <glm/gtc/type_ptr.hpp>

// Includes OpenGL
#include <SDL2/SDL.h>
#define GL3_PROTOTYPES 1
#include <GL/gl.h>

//Includes de base
#include <string>
#include <iostream>

//Autres includes
#include "CamControl/InputAndJoy.h"
#include "CamControl/Camera.h"
#include "Cubes/Cube.h"

class SceneOpenGL
{
    public:

    SceneOpenGL(std::string titre, int largeur, int hauteur);
    ~SceneOpenGL();

    bool initialiserFenetre();
    bool initGL();
    void bouclePrincipale();


    private:

    std::string m_titreFenetre;
    int m_largeurFenetre;
    int m_hauteurFenetre;

    SDL_Window* m_fenetre;
    SDL_GLContext m_contexteOpenGL;
    Camera m_camera;
    InputAndJoy m_input;
};

#endif // SCENEOPENGL_H_INCLUDED
