#include <stdexcept>
#include <string>
#include <msp/io/seekable.h>
+#include "mspgui_api.h"
#include "pixelformat.h"
namespace Msp {
class ImageLoader;
-class Image
+class MSPGUI_API Image
{
public:
struct Data
{
- PixelFormat fmt;
- unsigned width;
- unsigned height;
- unsigned stride;
- char *data;
-
- Data();
+ PixelFormat fmt = RGB;
+ unsigned width = 0;
+ unsigned height = 0;
+ unsigned stride = 0;
+ char *owned_pixels = nullptr;
+ char *pixels = nullptr;
+
+ Data() = default;
+ Data(const Data &);
+ Data &operator=(const Data &);
~Data();
};
void load_file(const std::string &);
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; }
unsigned get_stride() const { return data.stride; }
- const void *get_data() const { return data.data; }
+ DEPRECATED const void *get_data() const { return data.pixels; }
+ const void *get_pixels() const { return data.pixels; }
};
} // namespace Graphics