bloboland
annotate src/texture.h @ 3:a39c301cdcce
terrain raytracing pretty much done
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sun, 16 Dec 2012 14:24:16 +0200 |
parents | cfe68befb7cc |
children | 9021a906c5d3 |
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@1 | 15 virtual int get_size(int idx) const; |
nuclear@1 | 16 |
nuclear@3 | 17 virtual void update(float *data) = 0; |
nuclear@3 | 18 |
nuclear@1 | 19 friend void bind_texture(const Texture *tex, int texunit); |
nuclear@1 | 20 }; |
nuclear@1 | 21 |
nuclear@1 | 22 void bind_texture(const Texture *tex, int texunit = 0); |
nuclear@1 | 23 |
nuclear@1 | 24 class Texture2D : public Texture { |
nuclear@1 | 25 public: |
nuclear@1 | 26 Texture2D(); |
nuclear@1 | 27 |
nuclear@1 | 28 void create(int xsz, int ysz, float *data = 0); |
nuclear@3 | 29 |
nuclear@3 | 30 void update(float *data); |
nuclear@1 | 31 }; |
nuclear@1 | 32 |
nuclear@1 | 33 class Texture3D : public Texture { |
nuclear@1 | 34 public: |
nuclear@1 | 35 Texture3D(); |
nuclear@1 | 36 |
nuclear@1 | 37 void create(int xsz, int ysz, int zsz, float *data = 0); |
nuclear@3 | 38 |
nuclear@3 | 39 void update(float *data); |
nuclear@1 | 40 }; |
nuclear@1 | 41 |
nuclear@1 | 42 #endif // TEXTURE_H_ |