goat3dgfx

annotate src/image.h @ 29:9d581abd0bfb

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