controls for fog to select params
[demo] / src / renderer.h
index 7c32c50..e484767 100644 (file)
@@ -1,34 +1,45 @@
 #ifndef RENDERER_H_
 #define RENDERER_H_
 
-/*
-       this might change:
-       atm we are going to have 1 renderer per scene and 1 shader program
-       for the scene
- */
-
-
-class Camera;
+class OrbitCamera;
 class Object;
 class Scene;
 class ShaderProgram;
+class Texture;
 
 class Renderer {
 protected:
+       int diff_loc;
+       int spec_loc;
+       int shin_loc;
+       int mmviewproj_loc;
+       int mview_loc;
+       int fog_loc;
+
        ShaderProgram *sprog;
-       virtual void draw_object(Object *object) const = 0;
+
+       /* debug shader to draw normals */
+       ShaderProgram *nprog;
+
+       Texture *skytex, *dskytex;
+
+       virtual void draw_object(Object *object) const;
+       virtual void draw_skybox() const;
 
 public:
+       float fog_density;
+
        Scene *scene;
-       Camera *camera;
+       OrbitCamera *camera;
 
        Renderer();
-       Renderer(ShaderProgram *sprog, Scene *scene, Camera *camera);
        virtual ~Renderer();
 
-       virtual void set_program(ShaderProgram *sprog);
-       virtual bool create() = 0;
-       virtual void draw() const = 0;
+       virtual bool create();
+       virtual void draw() const;
+
+       virtual void set_sky_tex(Texture *stex);
+       virtual void set_diffuse_sky_tex(Texture *dstex);
 };
 
 #endif // RENDERER_H_
\ No newline at end of file