]> git.tdb.fi Git - libs/gui.git/blob - source/graphics/image.cpp
Make the image loading code more modular
[libs/gui.git] / source / graphics / image.cpp
1 #include <msp/core/refptr.h>
2 #include <msp/fs/utils.h>
3 #include <msp/io/file.h>
4 #include <msp/io/memory.h>
5 #include "image.h"
6 #include "imageloader.h"
7
8 using namespace std;
9
10 namespace Msp {
11 namespace Graphics {
12
13 Image::Data::Data():
14         fmt(RGB),
15         width(0),
16         height(0),
17         data(0)
18 { }
19
20 Image::Data::~Data()
21 {
22         delete[] data;
23 }
24
25
26 void Image::load_file(const string &fn)
27 {
28         RefPtr<ImageLoader> loader = ImageLoader::open_file(fn);
29         load(*loader);
30 }
31
32 void Image::load_io(IO::Base &io)
33 {
34         RefPtr<ImageLoader> loader = ImageLoader::open_io(io);
35         load(*loader);
36 }
37
38 void Image::load(ImageLoader &loader)
39 {
40         loader.load(data);
41 }
42
43 } // namespace Graphics
44 } // namespace Msp