dungeon_crawler
diff prototype/src/renderer.h @ 41:acfe0c0110fc
- cleaned up the renderer
- implemented fallback (non-deferred renderer)
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Thu, 30 Aug 2012 05:35:00 +0300 |
parents | 862461b686f4 |
children | f71381c9e245 |
line diff
1.1 --- a/prototype/src/renderer.h Thu Aug 30 03:05:04 2012 +0300 1.2 +++ b/prototype/src/renderer.h Thu Aug 30 05:35:00 2012 +0300 1.3 @@ -3,15 +3,44 @@ 1.4 1.5 class Level; 1.6 1.7 -bool init_renderer(int xsz, int ysz); 1.8 -void destroy_renderer(); 1.9 +class Renderer { 1.10 +protected: 1.11 + int width, height; 1.12 1.13 -unsigned int get_deferred_shader(void); 1.14 -int get_tangent_location(void); 1.15 +public: 1.16 + Renderer(); 1.17 + virtual ~Renderer(); 1.18 1.19 -void resize_renderer(int xsz, int ysz); 1.20 + virtual bool init(int xsz, int ysz); 1.21 1.22 -void update_renderer(unsigned long msec, float dt); 1.23 -void render_deferred(const Level *level); 1.24 + virtual int get_tangent_location() const; 1.25 + virtual unsigned int get_current_program() const; 1.26 + 1.27 + virtual void resize(int xsz, int ysz); 1.28 + 1.29 + virtual void render(const Level *level) const = 0; 1.30 +}; 1.31 + 1.32 + 1.33 +class FwdRenderer : public Renderer { 1.34 +protected: 1.35 + unsigned int sdrprog; 1.36 + int tang_attr; 1.37 + 1.38 +public: 1.39 + FwdRenderer(); 1.40 + ~FwdRenderer(); 1.41 + 1.42 + bool init(int xsz, int ysz); 1.43 + 1.44 + int get_tangent_location() const; 1.45 + unsigned int get_current_program() const; 1.46 + 1.47 + void render(const Level *level) const; 1.48 +}; 1.49 + 1.50 + 1.51 +extern Renderer *rend; 1.52 + 1.53 1.54 #endif // RENDERER_H_