fixed linker error

This commit is contained in:
Anselme 2016-03-14 00:22:04 +01:00
parent 8ceca758e9
commit bd0bbb3e10
2 changed files with 16 additions and 15 deletions

View File

@ -14,8 +14,6 @@
#include "scene.h" #include "scene.h"
// main methods // main methods
std::vector<Module*> SparrowRenderer::NO_MODULES = std::vector<Module*>();
bool SparrowRenderer::modernOpenglAvailable = false; bool SparrowRenderer::modernOpenglAvailable = false;
void SparrowRenderer::initGL(int w, int h, bool forceCrappy) 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 && GLEW_ARB_framebuffer_object &&
glewIsSupported("GL_VERSION_3_3") && glewIsSupported("GL_VERSION_3_3") &&
GLEW_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; modernOpenglAvailable = true;
printf("Modern OpenGL available.\n"); printf("Modern OpenGL available.\n");
@ -58,8 +56,11 @@ void SparrowRenderer::resizeGL(int w, int h)
height = h; height = h;
if(scene != NULL && scene->getCamera() != NULL) if(scene != NULL && scene->getCamera() != NULL)
scene->getCamera()->resize(width, height); scene->getCamera()->resize(width, height);
for(Module *m : modules) if(modules != NULL)
{
for(Module *m : *modules)
m->resize(w, h); m->resize(w, h);
}
} }
void SparrowRenderer::renderGL() void SparrowRenderer::renderGL()
@ -68,11 +69,14 @@ void SparrowRenderer::renderGL()
glAssert(glClearColor(clearColor.r, clearColor.g, clearColor.b, 1)); glAssert(glClearColor(clearColor.r, clearColor.g, clearColor.b, 1));
glAssert(glClearDepth(1.0)); glAssert(glClearDepth(1.0));
for(Module *m : modules) if(modules != NULL)
{
for(Module *m : *modules)
{ {
glFinish(); glFinish();
m->renderGL(scene == NULL ? NULL : scene->getCamera(), scene); m->renderGL(scene == NULL ? NULL : scene->getCamera(), scene);
} }
}
glFinish(); glFinish();
} }
@ -86,9 +90,9 @@ bool SparrowRenderer::isModernOpenGLAvailable()
void SparrowRenderer::setPipeline(Pipeline* pipeline) void SparrowRenderer::setPipeline(Pipeline* pipeline)
{ {
if(pipeline != NULL) if(pipeline != NULL)
modules = pipeline->getModules(); modules = &(pipeline->getModules());
else else
modules = NO_MODULES; modules = NULL;
} }
// scene methods // scene methods

View File

@ -16,7 +16,7 @@ class SparrowRenderer
public: public:
SparrowRenderer() : SparrowRenderer() :
scene(NULL), scene(NULL),
modules(NO_MODULES), modules(NULL),
clearColor(0) clearColor(0)
{} {}
@ -40,14 +40,11 @@ protected:
int height; int height;
Scene* scene; Scene* scene;
std::vector<Module*> &modules; std::vector<Module*> *modules;
static bool modernOpenglAvailable; static bool modernOpenglAvailable;
glm::vec3 clearColor; glm::vec3 clearColor;
private:
static std::vector<Module*> NO_MODULES;
}; };
#endif // SPARROWRENDERER_H #endif // SPARROWRENDERER_H