X-Git-Url: http://git.mutantstargoat.com?p=demo;a=blobdiff_plain;f=src%2Fopengl%2Frenderer-gl.cc;h=1773f402772ad17b2e9c288a1aee023fd17df779;hp=5b81be39ee643e45cbf29a6b121666bb2da312e0;hb=369d75c73bf926a6dbcf4d740c8664bbb401602a;hpb=0da7a98f74d00bfa6cf0d47fd7cf0f687eeba5f6 diff --git a/src/opengl/renderer-gl.cc b/src/opengl/renderer-gl.cc index 5b81be3..1773f40 100644 --- a/src/opengl/renderer-gl.cc +++ b/src/opengl/renderer-gl.cc @@ -24,64 +24,26 @@ RendererGL::RendererGL(ShaderProgram *sprog, Scene *scene, Camera *camera) RendererGL::~RendererGL() { - destroy_shaders(); } -void RendererGL::draw() const +bool RendererGL::load_shader_program(const char *vfname, const char *ffname) { - /* use shaders */ - if(!sprog) { - fprintf(stderr, "No active shaders found. Using default.\n"); - glUseProgram(0); - } - else { - sprog->use(); - } - - /* draw all scene components */ - for(size_t i=0; iobjects.size(); ++i) { - draw_object(scene->objects[i]); - } + return true; } - -bool RendererGL::init_shaders(const char *vfname, const char *ffname) +void RendererGL::use_shader_program() { - if(sprog) - delete sprog; - - sprog = new ShaderProgramGL; - if(!sprog->load(vfname, ffname)) - goto error; - - if(!sprog->link()) - goto error; - - sprog->use(); - - glEnable(GL_DEPTH_TEST); - glEnable(GL_CULL_FACE); - - return true; - -error: - destroy_shaders(); - return false; } -void RendererGL::destroy_shaders() +bool RendererGL::create() { - if(sprog) { - delete sprog; - sprog = 0; - } + return true; } void RendererGL::draw_object(Object *object) const { - object->material->dtex->bind(); - - +} - object->mesh->draw(); +void RendererGL::draw() const +{ } \ No newline at end of file