]> git.tdb.fi Git - libs/gui.git/blob - source/graphics/quartz/quartzloader.h
c4517ec3b61520a49e7c312449a34b2a14ba4c0b
[libs/gui.git] / source / graphics / quartz / quartzloader.h
1 #ifndef MSP_GRAPHICS_QUARTZLOADER_H_
2 #define MSP_GRAPHICS_QUARTZLOADER_H_
3
4 #include <msp/graphics/imageloader.h>
5
6 namespace Msp {
7 namespace Graphics {
8
9 class QuartzLoader: public ImageLoader
10 {
11 private:
12         struct Private;
13
14         Private *priv = 0;
15
16 public:
17         QuartzLoader(IO::Seekable &);
18         ~QuartzLoader();
19
20         /* Experimentally found value, works for png and jpeg at least.  8 bytes
21         is not enough for Quartz to recognize png. */
22         static unsigned get_signature_size() { return 12; }
23         static bool detect(const std::string &);
24
25         void load_headers_(Image::Data &) override;
26         void load_pixels_(Image::Data &) override;
27 };
28
29 } // namespace Graphics
30 } // namespace Msp
31
32 #endif