46 lines
934 B
C++
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 */
|