started the renderer abstraction and the cubemap renderer
[laserbrain_demo] / src / renderer.cc
diff --git a/src/renderer.cc b/src/renderer.cc
new file mode 100644 (file)
index 0000000..0987b0d
--- /dev/null
@@ -0,0 +1,49 @@
+#include "renderer.h"
+
+Renderer::Renderer()
+{
+       mscn = 0;
+}
+
+Renderer::~Renderer()
+{
+}
+
+bool Renderer::init()
+{
+       return true;
+}
+
+void Renderer::destroy()
+{
+}
+
+void Renderer::set_scene(MetaScene *mscn)
+{
+       this->mscn = mscn;
+}
+
+MetaScene *Renderer::get_scene() const
+{
+       return mscn;
+}
+
+void Renderer::draw() const
+{
+       if(!mscn) return;
+
+       int num = (int)mscn->scenes.size();
+       for(int i=0; i<num; i++) {
+               Scene *scn = mscn->scenes[i];
+
+               int nobj = (int)scn->objects.size();
+               for(int j=0; j<nobj; j++) {
+                       draw_object(scn->objects[j]);
+               }
+       }
+}
+
+void Renderer::draw_object(Object *obj) const
+{
+       obj->draw();
+}