Sceneview
 All Classes Functions Variables Enumerations Enumerator Groups Pages
grid_renderer.hpp
1 // Copyright [2015] Albert Huang
2 
3 #ifndef SCENEVIEW_GRID_RENDERER_HPP__
4 #define SCENEVIEW_GRID_RENDERER_HPP__
5 
6 #include <sceneview/renderer.hpp>
7 #include <sceneview/material_resource.hpp>
8 
9 namespace sv {
10 
19 class GridRenderer : public Renderer {
20  Q_OBJECT
21 
22  public:
23  explicit GridRenderer(const QString& name, QObject* parent = 0);
24 
25  void InitializeGL() override;
26 
27  void RenderBegin() override;
28 
29  private:
30  void UpdateGeometry();
31 
32  MaterialResource::Ptr base_material_;
33  MaterialResource::Ptr grid_material_;
34  MaterialResource::Ptr depth_write_material_;
35 
36  GeometryResource::Ptr grid_geom_;
37  GeometryResource::Ptr base_geom_;
38  DrawNode* draw_node_;
39 
40  int grid_size_;
41 
42  GeometryData gdata_;
43 };
44 
45 } // namespace sv
46 
47 #endif // SCENEVIEW_GRID_RENDERER_HPP__
Geometry description to be used with GeometryResource.
Definition: geometry_resource.hpp:30
Scene node that contains a list of drawable objects.
Definition: draw_node.hpp:26
Subclass this to add content in the scene and draw things.
Definition: renderer.hpp:73
void RenderBegin() override
Called at the start of rendering, just before the scene is rendered.
void InitializeGL() override
Override to acquire OpenGL resources required by the Renderer.
A stock renderer provided as a basic utility and an example.
Definition: grid_renderer.hpp:19