Support count setter
This commit is contained in:
@@ -19,6 +19,40 @@ using namespace Magnum;
|
||||
using Object3D = SceneGraph::Object<SceneGraph::MatrixTransformation3D>;
|
||||
using Scene3D = SceneGraph::Scene<SceneGraph::MatrixTransformation3D>;
|
||||
|
||||
class GridDrawable : public SceneGraph::Drawable3D {
|
||||
public:
|
||||
explicit GridDrawable(Object3D &object, Shaders::Flat3D &shader,
|
||||
GL::Mesh &mesh, SceneGraph::DrawableGroup3D &drawables)
|
||||
: SceneGraph::Drawable3D{object, &drawables},
|
||||
m_shader(shader),
|
||||
m_mesh(mesh) {}
|
||||
|
||||
void draw(const Matrix4 &transformation, SceneGraph::Camera3D &camera);
|
||||
|
||||
private:
|
||||
Shaders::Flat3D &m_shader;
|
||||
GL::Mesh &m_mesh;
|
||||
};
|
||||
|
||||
class SubjectDrawable : public SceneGraph::Drawable3D {
|
||||
public:
|
||||
explicit SubjectDrawable(Object3D &object, Shaders::Phong &shader,
|
||||
GL::Mesh &mesh, SceneGraph::DrawableGroup3D &drawables,
|
||||
int count)
|
||||
: SceneGraph::Drawable3D{object, &drawables},
|
||||
m_shader(shader),
|
||||
m_mesh(mesh),
|
||||
m_count(count) {}
|
||||
|
||||
void draw(const Matrix4 &transformation, SceneGraph::Camera3D &camera);
|
||||
void count(int count);
|
||||
|
||||
private:
|
||||
Shaders::Phong &m_shader;
|
||||
GL::Mesh &m_mesh;
|
||||
int m_count;
|
||||
};
|
||||
|
||||
class MagnumRenderer {
|
||||
public:
|
||||
MagnumRenderer();
|
||||
@@ -39,9 +73,8 @@ private:
|
||||
void lazyInitialize();
|
||||
void prepGLState();
|
||||
|
||||
bool m_init{false};
|
||||
|
||||
float m_count{1};
|
||||
bool m_init;
|
||||
int m_count;
|
||||
|
||||
Platform::GLContext *m_ctx;
|
||||
GL::Framebuffer m_FBO{NoCreate};
|
||||
@@ -53,39 +86,11 @@ private:
|
||||
GL::Mesh m_subject{NoCreate};
|
||||
Shaders::Phong m_subjectShader{NoCreate};
|
||||
Object3D* m_subjectObject{nullptr};
|
||||
SubjectDrawable* m_subjectDrawable{nullptr};
|
||||
|
||||
GL::Mesh m_grid{NoCreate};
|
||||
Shaders::Flat3D m_gridShader{NoCreate};
|
||||
};
|
||||
|
||||
class GridDrawable : public SceneGraph::Drawable3D {
|
||||
public:
|
||||
explicit GridDrawable(Object3D &object, Shaders::Flat3D &shader,
|
||||
GL::Mesh &mesh, SceneGraph::DrawableGroup3D &drawables)
|
||||
: SceneGraph::Drawable3D{object, &drawables},
|
||||
m_shader(shader),
|
||||
m_mesh(mesh) {}
|
||||
|
||||
void draw(const Matrix4 &transformation, SceneGraph::Camera3D &camera);
|
||||
|
||||
private:
|
||||
Shaders::Flat3D &m_shader;
|
||||
GL::Mesh &m_mesh;
|
||||
};
|
||||
|
||||
class SubjectDrawable : public SceneGraph::Drawable3D {
|
||||
public:
|
||||
explicit SubjectDrawable(Object3D &object, Shaders::Phong &shader,
|
||||
GL::Mesh &mesh, SceneGraph::DrawableGroup3D &drawables)
|
||||
: SceneGraph::Drawable3D{object, &drawables},
|
||||
m_shader(shader),
|
||||
m_mesh(mesh) {}
|
||||
|
||||
void draw(const Matrix4 &transformation, SceneGraph::Camera3D &camera);
|
||||
|
||||
private:
|
||||
Shaders::Phong &m_shader;
|
||||
GL::Mesh &m_mesh;
|
||||
Object3D* m_gridObject{nullptr};
|
||||
};
|
||||
|
||||
#endif // MAGNUM_RENDER_H
|
||||
|
||||
Reference in New Issue
Block a user