diff --git a/src/sparrowrenderer.cpp b/src/sparrowrenderer.cpp index a96e206..966e2bc 100644 --- a/src/sparrowrenderer.cpp +++ b/src/sparrowrenderer.cpp @@ -14,8 +14,6 @@ #include "scene.h" // main methods -std::vector SparrowRenderer::NO_MODULES = std::vector(); - bool SparrowRenderer::modernOpenglAvailable = false; void SparrowRenderer::initGL(int w, int h, bool forceCrappy) @@ -30,7 +28,7 @@ void SparrowRenderer::initGL(int w, int h, bool forceCrappy) GLEW_ARB_framebuffer_object && glewIsSupported("GL_VERSION_3_3") && GLEW_VERSION_3_3 && - strcmp("3.30",(const char *)glGetString(GL_SHADING_LANGUAGE_VERSION))<=0) + strcmp("3.30",(const char *)glGetString(GL_SHADING_LANGUAGE_VERSION)) <= 0) { modernOpenglAvailable = true; printf("Modern OpenGL available.\n"); @@ -58,8 +56,11 @@ void SparrowRenderer::resizeGL(int w, int h) height = h; if(scene != NULL && scene->getCamera() != NULL) scene->getCamera()->resize(width, height); - for(Module *m : modules) - m->resize(w, h); + if(modules != NULL) + { + for(Module *m : *modules) + m->resize(w, h); + } } void SparrowRenderer::renderGL() @@ -68,10 +69,13 @@ void SparrowRenderer::renderGL() glAssert(glClearColor(clearColor.r, clearColor.g, clearColor.b, 1)); glAssert(glClearDepth(1.0)); - for(Module *m : modules) + if(modules != NULL) { - glFinish(); - m->renderGL(scene == NULL ? NULL : scene->getCamera(), scene); + for(Module *m : *modules) + { + glFinish(); + m->renderGL(scene == NULL ? NULL : scene->getCamera(), scene); + } } glFinish(); } @@ -86,9 +90,9 @@ bool SparrowRenderer::isModernOpenGLAvailable() void SparrowRenderer::setPipeline(Pipeline* pipeline) { if(pipeline != NULL) - modules = pipeline->getModules(); + modules = &(pipeline->getModules()); else - modules = NO_MODULES; + modules = NULL; } // scene methods diff --git a/src/sparrowrenderer.h b/src/sparrowrenderer.h index 7cbfcbc..fe798e1 100644 --- a/src/sparrowrenderer.h +++ b/src/sparrowrenderer.h @@ -16,7 +16,7 @@ class SparrowRenderer public: SparrowRenderer() : scene(NULL), - modules(NO_MODULES), + modules(NULL), clearColor(0) {} @@ -40,14 +40,11 @@ protected: int height; Scene* scene; - std::vector &modules; + std::vector *modules; static bool modernOpenglAvailable; glm::vec3 clearColor; - -private: - static std::vector NO_MODULES; }; #endif // SPARROWRENDERER_H