quick backup:
[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 bool load_shader_program(const char *vfname, const char *ffname) = 0;
30         virtual void use_shader_program() = 0;
31
32         virtual bool create() = 0;
33         virtual void draw() const = 0;
34 };
35
36 #endif // RENDERER_H_