a14d69c7c63fb941594eaa05204020340320e2a2
[demo] / src / renderer.h
1 #ifndef RENDERER_H_
2 #define RENDERER_H_
3
4 class OrbitCamera;
5 class Object;
6 class Scene;
7 class ShaderProgram;
8 class Texture;
9
10 class Renderer {
11 protected:
12         int diff_loc;
13         int spec_loc;
14         int shin_loc;
15         int mmviewproj_loc;
16         int mview_loc;
17
18         ShaderProgram *sprog;
19
20         /* debug shader to draw normals */
21         ShaderProgram *nprog;
22
23         Texture *skytex, *dskytex;
24
25         virtual void draw_object(Object *object) const;
26         virtual void draw_skybox() const;
27
28 public:
29         Scene *scene;
30         OrbitCamera *camera;
31
32         Renderer();
33         virtual ~Renderer();
34
35         virtual bool create();
36         virtual void draw() const;
37
38         virtual void set_sky_tex(Texture *stex);
39         virtual void set_diffuse_sky_tex(Texture *dstex);
40 };
41
42 #endif // RENDERER_H_