annotate src/image.h @ 22:c2a2069a49ec
slot highlighting, TODO blur
author |
John Tsiombikas <nuclear@member.fsf.org> |
date |
Tue, 07 Jul 2015 21:56:37 +0300 |
parents |
b41ceead1708 |
children |
3e6430028d54 |
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@22
|
33 void clear_image(Image *img, float r, float g, float b, float a = 255);
|
nuclear@22
|
34 void clear_image_alpha(Image *img, float a);
|
nuclear@4
|
35
|
nuclear@4
|
36 enum ImgCombine {
|
nuclear@4
|
37 IMG_OP_ADD,
|
nuclear@4
|
38 IMG_OP_SUB,
|
nuclear@4
|
39 IMG_OP_MUL,
|
nuclear@4
|
40 IMG_OP_LERP
|
nuclear@4
|
41 };
|
nuclear@4
|
42
|
nuclear@4
|
43 bool combine_image(Image *dest, const Image *aimg, const Image *bimg, ImgCombine op = IMG_OP_LERP, float t = 0.5);
|
nuclear@4
|
44
|
nuclear@4
|
45 #endif // IMAGE_H_
|