goat3dgfx

annotate src/image.h @ 13:25bf39105c82

lalal
author John Tsiombikas <nuclear@member.fsf.org>
date Wed, 27 Nov 2013 08:08:59 +0200
parents 1873dfd13f2d
children 7d6b667821cf
rev   line source
nuclear@0 1 #ifndef IMAGE_H_
nuclear@0 2 #define IMAGE_H_
nuclear@0 3
nuclear@0 4
nuclear@0 5 class Image {
nuclear@0 6 public:
nuclear@0 7 enum Format {
nuclear@0 8 FMT_GREY,
nuclear@0 9 FMT_RGB,
nuclear@0 10 FMT_RGBA,
nuclear@0 11 FMT_GREY_FLOAT,
nuclear@0 12 FMT_RGB_FLOAT,
nuclear@0 13 FMT_RGBA_FLOAT
nuclear@0 14 };
nuclear@0 15
nuclear@0 16 private:
nuclear@0 17 Format fmt;
nuclear@0 18 int width, height;
nuclear@0 19 void *pixels;
nuclear@0 20
nuclear@0 21 public:
nuclear@0 22 Image();
nuclear@0 23 ~Image();
nuclear@0 24
nuclear@0 25 int get_width() const;
nuclear@0 26 int get_height() const;
nuclear@0 27
nuclear@0 28 Format get_format() const;
nuclear@0 29
nuclear@0 30 bool create(int x, int y, Format fmt = FMT_RGBA);
nuclear@6 31 bool set_pixels(int xsz, int ysz, void *pixels, Format fmt = FMT_RGBA);
nuclear@6 32 bool set_pixels(int xsz, int ysz, void *pixels, int scan_width, Format fmt = FMT_RGBA);
nuclear@6 33 bool set_pixels(int xsz, int ysz, void *pixels, int x, int y, int scan_width = -1, Format fmt = FMT_RGBA);
nuclear@0 34 void *get_pixels() const;
nuclear@0 35
nuclear@6 36 void flip_horizontal();
nuclear@6 37 void flip_vertical();
nuclear@6 38 void rotate_180();
nuclear@6 39
nuclear@0 40 bool load(const char *fname);
nuclear@0 41 bool save(const char *fname) const;
nuclear@0 42 };
nuclear@0 43
nuclear@0 44 #endif // IMAGE_H_