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_ |