annotate src/image.h @ 21:c3fbf9616dbd
slot bounds, and ray testing
author |
John Tsiombikas <nuclear@member.fsf.org> |
date |
Thu, 02 Jul 2015 00:01:39 +0300 |
parents |
|
children |
c2a2069a49ec |
rev |
line source |
nuclear@4
|
1 #ifndef IMAGE_H_
|
nuclear@4
|
2 #define IMAGE_H_
|
nuclear@4
|
3
|
nuclear@4
|
4 class Image {
|
nuclear@4
|
5 private:
|
nuclear@4
|
6 mutable int tex_width, tex_height;
|
nuclear@4
|
7 mutable unsigned int tex;
|
nuclear@4
|
8 mutable bool tex_valid;
|
nuclear@4
|
9
|
nuclear@4
|
10 public:
|
nuclear@4
|
11 int width, height;
|
nuclear@4
|
12 unsigned char *pixels;
|
nuclear@4
|
13
|
nuclear@4
|
14 Image();
|
nuclear@4
|
15 ~Image();
|
nuclear@4
|
16
|
nuclear@4
|
17 Image(const Image &img);
|
nuclear@4
|
18 Image &operator =(const Image &img);
|
nuclear@4
|
19
|
nuclear@4
|
20 bool create(int width, int height, unsigned char *pixels = 0);
|
nuclear@4
|
21 void destroy();
|
nuclear@4
|
22
|
nuclear@4
|
23 bool load(const char *fname);
|
nuclear@4
|
24
|
nuclear@4
|
25 unsigned int texture() const;
|
nuclear@4
|
26 int texture_width() const;
|
nuclear@4
|
27 int texture_height() const;
|
nuclear@4
|
28
|
nuclear@4
|
29 void invalidate_texture();
|
nuclear@4
|
30 };
|
nuclear@4
|
31
|
nuclear@4
|
32 void clear_image(Image *img);
|
nuclear@4
|
33 void clear_image(Image *img, float r, float g, float b);
|
nuclear@4
|
34
|
nuclear@4
|
35 enum ImgCombine {
|
nuclear@4
|
36 IMG_OP_ADD,
|
nuclear@4
|
37 IMG_OP_SUB,
|
nuclear@4
|
38 IMG_OP_MUL,
|
nuclear@4
|
39 IMG_OP_LERP
|
nuclear@4
|
40 };
|
nuclear@4
|
41
|
nuclear@4
|
42 bool combine_image(Image *dest, const Image *aimg, const Image *bimg, ImgCombine op = IMG_OP_LERP, float t = 0.5);
|
nuclear@4
|
43
|
nuclear@4
|
44 #endif // IMAGE_H_
|