dbf-halloween2015

annotate src/image.h @ 0:50683c78264e

initial commit
author John Tsiombikas <nuclear@member.fsf.org>
date Sun, 01 Nov 2015 00:09:12 +0200
parents
children
rev   line source
nuclear@0 1 #ifndef IMAGE_H_
nuclear@0 2 #define IMAGE_H_
nuclear@0 3
nuclear@0 4 class Image {
nuclear@0 5 private:
nuclear@0 6 mutable int tex_width, tex_height;
nuclear@0 7 mutable unsigned int tex;
nuclear@0 8 mutable bool tex_valid;
nuclear@0 9
nuclear@0 10 public:
nuclear@0 11 int width, height;
nuclear@0 12 unsigned char *pixels;
nuclear@0 13
nuclear@0 14 Image();
nuclear@0 15 ~Image();
nuclear@0 16
nuclear@0 17 Image(const Image &img);
nuclear@0 18 Image &operator =(const Image &img);
nuclear@0 19
nuclear@0 20 bool create(int width, int height, unsigned char *pixels = 0);
nuclear@0 21 void destroy();
nuclear@0 22
nuclear@0 23 bool load(const char *fname);
nuclear@0 24 bool save(const char *fname) const;
nuclear@0 25
nuclear@0 26 unsigned int texture() const;
nuclear@0 27 int texture_width() const;
nuclear@0 28 int texture_height() const;
nuclear@0 29
nuclear@0 30 void invalidate_texture();
nuclear@0 31 };
nuclear@0 32
nuclear@0 33 void clear_image(Image *img);
nuclear@0 34 void clear_image(Image *img, float r, float g, float b, float a = 255);
nuclear@0 35 void clear_image_alpha(Image *img, float a);
nuclear@0 36
nuclear@0 37 enum ImgCombine {
nuclear@0 38 IMG_OP_ADD,
nuclear@0 39 IMG_OP_SUB,
nuclear@0 40 IMG_OP_MUL,
nuclear@0 41 IMG_OP_LERP
nuclear@0 42 };
nuclear@0 43
nuclear@0 44 bool combine_image(Image *dest, const Image *aimg, const Image *bimg, ImgCombine op = IMG_OP_LERP, float t = 0.5);
nuclear@0 45
nuclear@0 46 void convolve_horiz_image(Image *dest, float *kern, int ksz, float scale = 0.0);
nuclear@0 47 void convolve_vert_image(Image *dest, float *kern, int ksz, float scale = 0.0);
nuclear@0 48
nuclear@0 49 #endif // IMAGE_H_