X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Frenderer.h;h=b3d24241a3983819f17191c547526a1c0a6d2888;hb=fcd6773bc770425ede4b47a84eef7cc78342542c;hp=6ea7c02252837bd7fe2a36f1b02f81cfb954d8fa;hpb=0da7a98f74d00bfa6cf0d47fd7cf0f687eeba5f6;p=demo diff --git a/src/renderer.h b/src/renderer.h index 6ea7c02..b3d2424 100644 --- a/src/renderer.h +++ b/src/renderer.h @@ -1,37 +1,25 @@ #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 Object; class Scene; class ShaderProgram; -class Object; class Renderer { protected: ShaderProgram *sprog; - virtual void draw_object(Object *object) const = 0; + virtual void draw_object(Object *object) const; public: Scene *scene; Camera *camera; Renderer(); - Renderer(ShaderProgram *sprog, Scene *scene, Camera *camera); virtual ~Renderer(); - /* for the moment each Renderer creates and destroys the ShaderProgram - because we are using only a couple of shaders, in the future we might need a shader - manager that stores the shaders and replace these functions with something like: - void set_shader_program(ShaderProgram *sprog) */ - virtual bool init_shaders(const char *vfname, const char *ffname) = 0; - virtual void destroy_shaders() = 0; - - virtual void draw() const = 0; + virtual bool create(); + virtual void draw() const; }; #endif // RENDERER_H_ \ No newline at end of file