dungeon_crawler

annotate prototype/src/renderer_deferred.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 fc2b3d06d07c
children
rev   line source
nuclear@41 1 #ifndef RENDERER_DEFERRED_H_
nuclear@41 2 #define RENDERER_DEFERRED_H_
nuclear@41 3
nuclear@41 4 #include "renderer.h"
nuclear@41 5
nuclear@41 6 #define MRT_COUNT 3
nuclear@41 7
nuclear@41 8 class DeferredRenderer : public Renderer {
nuclear@60 9 protected:
nuclear@65 10 // render targets
nuclear@41 11 unsigned int mrt_tex[MRT_COUNT];
nuclear@41 12
nuclear@65 13 // shaders
nuclear@41 14 unsigned int mrt_prog;
nuclear@41 15 unsigned int deferred_omni, deferred_debug;
nuclear@41 16
nuclear@41 17 mutable unsigned int curr_prog;
nuclear@41 18
nuclear@60 19 int num_draw_bufs;
nuclear@60 20
nuclear@72 21 virtual bool create_rtarg();
nuclear@41 22
nuclear@41 23 public:
nuclear@41 24 DeferredRenderer();
nuclear@60 25 virtual ~DeferredRenderer();
nuclear@41 26
nuclear@60 27 virtual bool init(int xsz, int ysz);
nuclear@41 28
nuclear@60 29 virtual int get_tangent_location() const;
nuclear@60 30 virtual unsigned int get_current_program() const;
nuclear@41 31
nuclear@60 32 virtual void resize(int xsz, int ysz);
nuclear@41 33
nuclear@60 34 virtual void render(const Level *level) const;
nuclear@60 35
nuclear@60 36 virtual void light_pass(const Level *level) const;
nuclear@41 37 };
nuclear@41 38
nuclear@41 39 #endif // RENDERER_DEFERRED_H_