goat3dgfx

annotate src/rtarg.h @ 16:f61cc1df533c

added viewscn example (under dev)
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 30 Nov 2013 20:53:26 +0200
parents 1873dfd13f2d
children
rev   line source
nuclear@0 1 #ifndef RTARG_H_
nuclear@0 2 #define RTARG_H_
nuclear@0 3
nuclear@0 4 #include "vmath/vmath.h"
nuclear@0 5 #include "opengl.h"
nuclear@0 6
nuclear@15 7 namespace goatgfx {
nuclear@15 8
nuclear@0 9 class Texture;
nuclear@0 10
nuclear@0 11 class RenderTarget {
nuclear@0 12 private:
nuclear@0 13 int width, height;
nuclear@0 14
nuclear@0 15 unsigned int fbo;
nuclear@0 16 Texture *color_tex;
nuclear@0 17 unsigned int tex_targ;
nuclear@0 18 int tex_face;
nuclear@0 19 unsigned int rbuf_zstencil;
nuclear@0 20
nuclear@0 21 public:
nuclear@0 22 RenderTarget();
nuclear@0 23 ~RenderTarget();
nuclear@0 24
nuclear@0 25 bool create(unsigned int fmt = GL_RGBA);
nuclear@0 26 bool create(int width, int height, unsigned int fmt = GL_RGBA);
nuclear@0 27 bool create(Texture *tex, int face = 0);
nuclear@0 28
nuclear@0 29 void cleanup();
nuclear@0 30
nuclear@0 31 bool resize(int width, int height);
nuclear@0 32
nuclear@0 33 int get_width() const;
nuclear@0 34 int get_height() const;
nuclear@0 35
nuclear@0 36 Texture *get_texture() const;
nuclear@0 37
nuclear@0 38 /** calculates a texture matrix to map the full texture space
nuclear@0 39 * onto the part of the texture occupied by the render target
nuclear@0 40 */
nuclear@0 41 Matrix4x4 get_texture_matrix() const;
nuclear@0 42
nuclear@0 43 bool check() const;
nuclear@0 44 void bind() const;
nuclear@0 45 };
nuclear@0 46
nuclear@0 47 void set_render_target(const RenderTarget *rtarg);
nuclear@0 48
nuclear@0 49 int next_pow2(int x);
nuclear@0 50
nuclear@15 51 } // namespace goatgfx
nuclear@15 52
nuclear@0 53 #endif // RTARG_H_