#ifndef SCREEN_H
#define SCREEN_H

#include "SDL.h"
#include "glfuncs.h"

#include <string>

class Object;

class Screen
{
public:
	static Screen* instance();
	void drawLevel(int texture, GLfloat texCoords[4], SDL_Rect quad);
	void drawScreen(int texture, GLfloat texCoords[4], SDL_Rect quad);

	void drawCutScene(std::string cutSceneText);
	void drawText(std::string text, int x, int y);

	void move(int x, int y);

	void update();

	static int height() {return HEIGHT;}
	static int width() {return WIDTH;}

	void registerFollowObj(Object * o);
	Object* getFollowObj(){ return _followMe; };

	SDL_Rect getScreenRect() {return _screen;}

	static const int FRAMERATE = 60;

private:
	static Screen* _instance;
	SDL_Rect _screen;
	SDL_Rect _center;
	Screen();

	Object * _followMe;

	// fraction of the screen for the black bars
	static const int CSFRAC = 5;

	static const int HEIGHT ;//=800;
	static const int WIDTH ;//= 300;
};

#endif