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_