
#ifndef SPECTRE_GRAPHICS_RENDERER2D_H
#define SPECTRE_GRAPHICS_RENDERER2D_H

#include <Spectre/Graphics/Renderable.h>
#include <Spectre/Graphics/ShaderProgram.h>
#include <Spectre/Scene/Camera2D.h>

class Renderer2D
{
public :
	Renderer2D();
	virtual ~Renderer2D();

	void setCamera(const Camera2D& camera);

	virtual void begin() {};

	virtual void submit(const Renderable2D& renderable) = 0;

	// Drawing.
	virtual void draw(const Renderable2D* renderable) = 0;

	virtual void render() = 0;

protected :

	const Camera2D* m_camera;
};

#endif /* SPECTRE_GRAPHICS_RENDERER2D_H */