Files
wc3re/render/Drawable.hh

45 lines
738 B
C++

#ifndef WC3RE_RENDER_DRAWABLE_HH__
#define WC3RE_RENDER_DRAWABLE_HH__
#include <glm/glm.hpp>
namespace render {
class Renderer;
class Drawable {
public:
Drawable(Renderer& renderer)
: renderer_(renderer) {
}
virtual ~Drawable() {
}
virtual void draw() = 0;
protected:
Renderer& renderer_;
};
class TransformDrawable : public Drawable {
public:
TransformDrawable(Renderer& renderer)
: Drawable(renderer), transformMatrix_() {
}
virtual void setTransform(glm::mat4 matrix) {
transformMatrix_ = matrix;
}
virtual glm::mat4 const& getTransform() const {
return transformMatrix_;
}
protected:
glm::mat4 transformMatrix_;
};
}
#endif