#ifndef GRAPHICSSCENE_H_
#define GRAPHICSSCENE_H_

#include "TextureLoader.h"

class GraphicsScene {
  public:
    int step;
    GLubyte *data;
    GLuint texid;

    GraphicsScene() :
      step(0) {
    }
    ~GraphicsScene() {
      if (data != NULL) {
        delete data;
      }
    }

    void initTextures() {
      int w, h;
      data = glmReadPPM("testbin.ppm", &w, &h);
      std::cout << "Read testbin.ppm, width = " << w << ", height = " << h
          << std::endl;

      glGenTextures(1, &texid);

      glBindTexture(GL_TEXTURE_2D, texid);
      glTexEnvi(GL_TEXTURE_2D, GL_TEXTURE_ENV_MODE, GL_MODULATE);
      glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
      glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
      glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, w, h, 0, GL_RGB, GL_UNSIGNED_BYTE,
          data);

      glEnable(GL_TEXTURE_2D);
    }

};

GraphicsScene SCENE;

#endif /*GRAPHICSSCENE_H_*/
