dungeon_crawler
view prototype/src/renderer_deferred.h @ 65:fc2b3d06d07c
made the deferred renderer draw into a texture, so that I can reuse the depth
buffer for geometric post effects (particles), and implement other per-pixel
post effects eventually
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Tue, 02 Oct 2012 13:42:18 +0300 |
parents | aa86119e3295 |
children | a27528035e20 |
line source
1 #ifndef RENDERER_DEFERRED_H_
2 #define RENDERER_DEFERRED_H_
4 #include "renderer.h"
6 #define MRT_COUNT 3
8 class DeferredRenderer : public Renderer {
9 protected:
10 // render targets
11 unsigned int fbo, rend_tex, rbuf_depth;
12 unsigned int mrt_tex[MRT_COUNT];
13 int tex_xsz, tex_ysz;
15 // shaders
16 unsigned int mrt_prog;
17 unsigned int deferred_omni, deferred_debug;
18 unsigned int post_sdr;
20 mutable unsigned int curr_prog;
22 int num_draw_bufs;
24 virtual bool create_fbo();
26 public:
27 DeferredRenderer();
28 virtual ~DeferredRenderer();
30 virtual bool init(int xsz, int ysz);
32 virtual int get_tangent_location() const;
33 virtual unsigned int get_current_program() const;
35 virtual void resize(int xsz, int ysz);
37 virtual void render(const Level *level) const;
39 virtual void light_pass(const Level *level) const;
40 };
42 #endif // RENDERER_DEFERRED_H_