--- /dev/null
+#ifndef MSP_GRAPHICS_QUARTZLOADER_H_
+#define MSP_GRAPHICS_QUARTZLOADER_H_
+
+#include <msp/graphics/imageloader.h>
+
+namespace Msp {
+namespace Graphics {
+
+class QuartzLoader: public ImageLoader
+{
+private:
+ struct Private;
+
+ Private *priv;
+
+ static Register<QuartzLoader> reg;
+
+public:
+ QuartzLoader(IO::Seekable &);
+ virtual ~QuartzLoader();
+
+ /* Experimentally found value, works for png and jpeg at least. 8 bytes
+ is not enough for Quartz to recognize png. */
+ static unsigned get_signature_size() { return 12; }
+ static bool detect(const std::string &);
+
+ virtual void load(Image::Data &);
+};
+
+} // namespace Graphics
+} // namespace Msp
+
+#endif