/*
File Name: Render2D.h
Created By: Andy Odle
Date: Oct 13, 2009

Description: 
    
    
*/

#ifndef Render2D_h
#define Render2D_h

#include "GL/gl.h"
#include "GL/glu.h"
#include "GL/glext.h"

#include "./source/inc/ResourceManager.h"
#include "./source/PlatformSpecific/inc/ErrorReport.h"
#include "./source/MVC/View.h"

class Render2D : public View
{
    
public:
    
    static Render2D *render2D_i();
    
    void Display(Model *model_p);
    void ClearScreen(float red_p, float green_p, float blue_p, float alpha_p);
    void DestroyRender();
    void SetWidthAndHeight(int width_p, int height_p);
    int GetWidth(){return width_m;}
    int GetHeight(){return height_m;}

private:

    Render2D();
    ~Render2D();
    Render2D(Render2D const&){}
    Render2D &operator=(Render2D const&){} 
    
    void Render(Thing *thing_p);
    
private:

    bool initilized_m;
    int width_m;
    int height_m;
    ErrorReport *errorReport_m;
    
    static Render2D *render2D_m;
};

#endif
