tavli

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_