]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/image.h
Make it possible to load an image into an externally allocated buffer
[libs/gui.git] / source / graphics / image.h
index bfaeef84a00fbf7b945dbac8cc51d0fc593673bd..51147cefdcf341a882a426933efe52576721d155 100644 (file)
@@ -3,7 +3,7 @@
 
 #include <stdexcept>
 #include <string>
-#include <msp/io/base.h>
+#include <msp/io/seekable.h>
 #include "pixelformat.h"
 
 namespace Msp {
@@ -19,9 +19,13 @@ public:
                PixelFormat fmt;
                unsigned width;
                unsigned height;
-               char *data;
+               unsigned stride;
+               char *owned_pixels;
+               char *pixels;
 
                Data();
+               Data(const Data &);
+               Data &operator=(const Data &);
                ~Data();
        };
 
@@ -30,13 +34,17 @@ private:
 
 public:
        void load_file(const std::string &);
-       void load_io(IO::Base &);
+       void load_io(IO::Seekable &);
        void load(ImageLoader &);
+       void load_into(ImageLoader &, void *);
+       void load_headers(ImageLoader &);
 
        PixelFormat get_format() const { return data.fmt; }
        unsigned get_width() const { return data.width; }
        unsigned get_height() const { return data.height; }
-       const void *get_data() const { return data.data; }
+       unsigned get_stride() const { return data.stride; }
+       DEPRECATED const void *get_data() const { return data.pixels; }
+       const void *get_pixels() const { return data.pixels; }
 };
 
 } // namespace Graphics