bloboland

view 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
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 void set_filtering(unsigned int min_filter, unsigned int mag_filter = 0);
16 virtual void set_wrapping(unsigned int wrap);
18 virtual int get_size(int idx) const;
20 virtual void update(float *data) = 0;
22 friend void bind_texture(const Texture *tex, int texunit);
23 };
25 void bind_texture(const Texture *tex, int texunit = 0);
27 class Texture1D : public Texture {
28 public:
29 Texture1D();
31 void create(int sz, float *data = 0);
33 void update(float *data);
34 };
36 class Texture2D : public Texture {
37 public:
38 Texture2D();
40 void create(int xsz, int ysz, float *data = 0);
42 void update(float *data);
43 };
45 class Texture3D : public Texture {
46 public:
47 Texture3D();
49 void create(int xsz, int ysz, int zsz, float *data = 0);
51 void update(float *data);
52 };
54 #endif // TEXTURE_H_