1
0
Fork 0
spectre/include/Spectre/Graphics/Renderable.h

46 lines
934 B
C++

#ifndef SPECTRE_GRAPHICS_RENDERABLE_H
#define SPECTRE_GRAPHICS_RENDERABLE_H
#include "Vertex2D.h"
#include "Transformable.h"
#include <Spectre/Math/Matrix4.h>
#include <Spectre/Math/Vector2.h>
#include <vector>
class Renderer2D;
class ShaderProgram;
class Texture;
enum RenderType
{
RenderType_Scene = 0,
RenderType_UI = 1
};
class Renderable2D : public Transformable
{
public :
Renderable2D();
Renderable2D(const Vector2f& position);
virtual ~Renderable2D();
unsigned char getZOrder() const;
void setZOrder(unsigned char value);
virtual const std::vector<Vertex2D>& getVertices() const = 0;
virtual const std::vector<unsigned short>& getIndices() const = 0;
virtual const Texture* getTexture() const { return NULL; };
virtual const RenderType getRenderType() const = 0;
virtual void render(Renderer2D& renderer) const = 0;
protected :
unsigned char m_zorder;
};
#endif /* SPECTRE_GRAPHCIS_RENDERABLE_H */