bloboland

annotate src/texture.h @ 4:9021a906c5d3

lots of stuff
author John Tsiombikas <nuclear@member.fsf.org>
date Tue, 18 Dec 2012 06:13:09 +0200
parents a39c301cdcce
children 2f4406cc341e
rev   line source
nuclear@1 1 #ifndef TEXTURE_H_
nuclear@1 2 #define TEXTURE_H_
nuclear@1 3
nuclear@1 4 class Texture {
nuclear@1 5 protected:
nuclear@1 6 unsigned int type;
nuclear@1 7 unsigned int tex;
nuclear@1 8
nuclear@1 9 int size[3];
nuclear@1 10
nuclear@1 11 public:
nuclear@1 12 Texture();
nuclear@1 13 virtual ~Texture();
nuclear@1 14
nuclear@4 15 virtual void set_filtering(unsigned int min_filter, unsigned int mag_filter = 0);
nuclear@4 16 virtual void set_wrapping(unsigned int wrap);
nuclear@4 17
nuclear@1 18 virtual int get_size(int idx) const;
nuclear@1 19
nuclear@3 20 virtual void update(float *data) = 0;
nuclear@3 21
nuclear@1 22 friend void bind_texture(const Texture *tex, int texunit);
nuclear@1 23 };
nuclear@1 24
nuclear@1 25 void bind_texture(const Texture *tex, int texunit = 0);
nuclear@1 26
nuclear@4 27 class Texture1D : public Texture {
nuclear@4 28 public:
nuclear@4 29 Texture1D();
nuclear@4 30
nuclear@4 31 void create(int sz, float *data = 0);
nuclear@4 32
nuclear@4 33 void update(float *data);
nuclear@4 34 };
nuclear@4 35
nuclear@1 36 class Texture2D : public Texture {
nuclear@1 37 public:
nuclear@1 38 Texture2D();
nuclear@1 39
nuclear@1 40 void create(int xsz, int ysz, float *data = 0);
nuclear@3 41
nuclear@3 42 void update(float *data);
nuclear@1 43 };
nuclear@1 44
nuclear@1 45 class Texture3D : public Texture {
nuclear@1 46 public:
nuclear@1 47 Texture3D();
nuclear@1 48
nuclear@1 49 void create(int xsz, int ysz, int zsz, float *data = 0);
nuclear@3 50
nuclear@3 51 void update(float *data);
nuclear@1 52 };
nuclear@1 53
nuclear@1 54 #endif // TEXTURE_H_