#ifndef SCENEOPENGL_H_INCLUDED
#define SCENEOPENGL_H_INCLUDED

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

// Includes OpenGL
#include <SDL2/SDL.h>
#define GL3_PROTOTYPES 1
#include <GLES3/gl3.h>

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

//Autres includes
#include "Shader.h"
#include "Input.h"

// Macro utile au VBO
#ifndef BUFFER_OFFSET
    #define BUFFER_OFFSET(offset) ((char*)NULL + (offset))
#endif

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;
    Input m_input;
};

#endif // SCENEOPENGL_H_INCLUDED