43 lines
807 B
C++
43 lines
807 B
C++
#ifndef WC3RE_RENDER_OBJECT_HH__
|
|
#define WC3RE_RENDER_OBJECT_HH__
|
|
|
|
#define GLM_FORCE_RADIANS
|
|
#include <glm/glm.hpp>
|
|
|
|
#include "Drawable.hh"
|
|
#include "GlResource.hh"
|
|
#include "VBOManager.hh"
|
|
|
|
class ObjDecoder;
|
|
class PaletteDecoder;
|
|
|
|
namespace render {
|
|
class Object : public Drawable {
|
|
public:
|
|
Object(Renderer& renderer, ObjDecoder& obj, PaletteDecoder& palt);
|
|
|
|
void setRot(float rot) {
|
|
rot_ = rot;
|
|
}
|
|
|
|
void setAnimFrame(unsigned frame) {
|
|
animFrame_ = frame;
|
|
}
|
|
|
|
void draw() override;
|
|
|
|
private:
|
|
VertexArrayResource vertexArray_;
|
|
gl::GLuint program_;
|
|
VBOManager::VBOAlloc vbo_;
|
|
TextureResource tex_, texAnim_;
|
|
glm::mat4 mvp_;
|
|
uintptr_t indexOfs_;
|
|
size_t numIndices_, maxIndex_;
|
|
float rot_;
|
|
unsigned animFrame_;
|
|
};
|
|
}
|
|
|
|
#endif
|