| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #include "Base.h"
- #include "SceneRendererForward.h"
- #include "Terrain.h"
- #include "Model.h"
- #include "ParticleEmitter.h"
- #include "Form.h"
- namespace gameplay
- {
- SceneRendererForward::SceneRendererForward()
- : SceneRenderer()
- {
- }
- SceneRendererForward::SceneRendererForward(const SceneRendererForward& copy)
- {
- }
- SceneRendererForward::~SceneRendererForward()
- {
- }
- SceneRendererForward* SceneRendererForward::create()
- {
- return new SceneRendererForward();
- }
- unsigned int SceneRendererForward::render(VisibleSet* set)
- {
- set->reset();
- unsigned int drawCalls = 0;
- Node* next = set->getNext();
- do
- {
- drawCalls += drawNode(next);
- next = set->getNext();
- } while ( next != NULL);
- return drawCalls;
- }
- unsigned int SceneRendererForward::drawNode(Node* node)
- {
- unsigned int drawCalls = 0;
- // Draw Terrain
- Terrain* terrain = node->getTerrain();
- if (terrain)
- drawCalls += terrain->draw(isWireframe());
- // Draw Models (Shadows) TODO:
- // Draw Modes
- Model* model = node->getModel();
- if (model)
- drawCalls += model->draw(isWireframe());
- // Draw particles
- ParticleEmitter* emitter = node->getParticleEmitter();
- if (emitter)
- drawCalls += emitter->draw();
- // Draw forms
- Form* form = node->getForm();
- if (form)
- drawCalls += form->draw();
- return drawCalls;
- }
- }
|