backup of where I was last week (nothing added)
[demo] / src / renderer.h
1 #ifndef RENDERER_H_
2 #define RENDERER_H_
3
4 /*
5         this might change:
6         atm we are going to have 1 renderer per scene and 1 shader program
7         for the scene
8  */
9
10
11 class Camera;
12 class Object;
13 class Scene;
14 class ShaderProgram;
15
16 class Renderer {
17 protected:
18         ShaderProgram *sprog;
19         virtual void draw_object(Object *object) const = 0;
20
21 public:
22         Scene *scene;
23         Camera *camera;
24
25         Renderer();
26         Renderer(ShaderProgram *sprog, Scene *scene, Camera *camera);
27         virtual ~Renderer();
28
29         virtual void set_program(ShaderProgram *sprog);
30         virtual bool create() = 0;
31         virtual void draw() const = 0;
32 };
33
34 #endif // RENDERER_H_