bloboland

view 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
line source
1 #ifndef TEXTURE_H_
2 #define TEXTURE_H_
4 class Texture {
5 protected:
6 unsigned int type;
7 unsigned int tex;
9 int size[3];
11 public:
12 Texture();
13 virtual ~Texture();
15 virtual int get_size(int idx) const;
17 virtual void update(float *data) = 0;
19 friend void bind_texture(const Texture *tex, int texunit);
20 };
22 void bind_texture(const Texture *tex, int texunit = 0);
24 class Texture2D : public Texture {
25 public:
26 Texture2D();
28 void create(int xsz, int ysz, float *data = 0);
30 void update(float *data);
31 };
33 class Texture3D : public Texture {
34 public:
35 Texture3D();
37 void create(int xsz, int ysz, int zsz, float *data = 0);
39 void update(float *data);
40 };
42 #endif // TEXTURE_H_