dungeon_crawler

annotate prototype/src/renderer.h @ 72:a27528035e20

- re-organized the renderer classes a bit wrt final render-target - implemented identity color-grading palette for now - broke particle systems.... - removed multipass renderer
author John Tsiombikas <nuclear@member.fsf.org>
date Fri, 19 Oct 2012 02:45:57 +0300
parents f71381c9e245
children 5981917093ff
rev   line source
nuclear@15 1 #ifndef RENDERER_H_
nuclear@15 2 #define RENDERER_H_
nuclear@15 3
nuclear@72 4 #include "colgrade.h"
nuclear@72 5
nuclear@23 6 class Level;
nuclear@23 7
nuclear@41 8 class Renderer {
nuclear@41 9 protected:
nuclear@72 10 // render target
nuclear@72 11 unsigned int fbo;
nuclear@72 12 unsigned int rend_tex, rend_depth;
nuclear@41 13 int width, height;
nuclear@72 14 int tex_xsz, tex_ysz;
nuclear@72 15
nuclear@72 16 GradePalette gradepal;
nuclear@72 17 unsigned int post_sdr;
nuclear@72 18
nuclear@72 19 virtual bool create_rtarg();
nuclear@15 20
nuclear@41 21 public:
nuclear@41 22 Renderer();
nuclear@41 23 virtual ~Renderer();
nuclear@33 24
nuclear@41 25 virtual bool init(int xsz, int ysz);
nuclear@23 26
nuclear@41 27 virtual int get_tangent_location() const;
nuclear@41 28 virtual unsigned int get_current_program() const;
nuclear@41 29
nuclear@41 30 virtual void resize(int xsz, int ysz);
nuclear@41 31
nuclear@62 32 virtual void render_pre(const Level *level) const;
nuclear@41 33 virtual void render(const Level *level) const = 0;
nuclear@62 34 virtual void render_post(const Level *level) const;
nuclear@41 35 };
nuclear@41 36
nuclear@41 37
nuclear@41 38 class FwdRenderer : public Renderer {
nuclear@41 39 protected:
nuclear@41 40 unsigned int sdrprog;
nuclear@41 41 int tang_attr;
nuclear@41 42
nuclear@41 43 public:
nuclear@41 44 FwdRenderer();
nuclear@41 45 ~FwdRenderer();
nuclear@41 46
nuclear@41 47 bool init(int xsz, int ysz);
nuclear@41 48
nuclear@41 49 int get_tangent_location() const;
nuclear@41 50 unsigned int get_current_program() const;
nuclear@41 51
nuclear@41 52 void render(const Level *level) const;
nuclear@41 53 };
nuclear@41 54
nuclear@41 55
nuclear@41 56 extern Renderer *rend;
nuclear@41 57
nuclear@15 58
nuclear@15 59 #endif // RENDERER_H_