{
}
-bool RendererGL::load_shader_program(const char *vfname, const char *ffname)
-{
- return true;
-}
-
-void RendererGL::use_shader_program()
-{
-}
-
bool RendererGL::create()
{
return true;
void RendererGL::draw() const
{
+ //TODO
+ /* set state, uniforms */
+ sprog->use();
+ for(size_t i=0; i<scene->objects.size(); i++) {
+ draw_object(scene->objects[i]);
+ }
}
\ No newline at end of file
virtual ~RendererGL();
- virtual bool load_shader_program(const char *vfname, const char *ffname) override;
- virtual void use_shader_program() override;
+ bool load_program(ShaderProgram *sprog);
virtual bool create() override; // load shader prog, scene data etc
virtual void draw() const override; // set state from camera, set uniforms
Renderer::~Renderer()
{
+}
+
+void Renderer::set_program(ShaderProgram *sprog)
+{
+ this->sprog = sprog;
}
\ No newline at end of file
Renderer(ShaderProgram *sprog, Scene *scene, Camera *camera);
virtual ~Renderer();
- virtual bool load_shader_program(const char *vfname, const char *ffname) = 0;
- virtual void use_shader_program() = 0;
-
+ virtual void set_program(ShaderProgram *sprog);
virtual bool create() = 0;
virtual void draw() const = 0;
};