X-Git-Url: http://git.mutantstargoat.com?p=demo;a=blobdiff_plain;f=src%2Frenderer.h;h=e48476728237a60cb27303828365b72264e84a0a;hp=7c32c5091475681fda0fa65c38341a7a9a48dbd1;hb=c99060df01719b24ebd793b149d3c2dc5748cad5;hpb=1ede01ab671f707338b2cc13517877cccd4a4f7f diff --git a/src/renderer.h b/src/renderer.h index 7c32c50..e484767 100644 --- a/src/renderer.h +++ b/src/renderer.h @@ -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