123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #ifndef IMAGE_LOADER_H
- #define IMAGE_LOADER_H
- #include "image.h"
- #include "list.h"
- #include "os/file_access.h"
- #include "ustring.h"
- class ImageLoader;
- /**
- * @class ImageLoader
- * Base Class and singleton for loading images from disk
- * Can load images in one go, or by scanline
- */
- class ImageFormatLoader {
- friend class ImageLoader;
- protected:
- virtual Error load_image(Ref<Image> p_image, FileAccess *p_fileaccess, bool p_force_linear, float p_scale) = 0;
- virtual void get_recognized_extensions(List<String> *p_extensions) const = 0;
- bool recognize(const String &p_extension) const;
- public:
- virtual ~ImageFormatLoader() {}
- };
- class ImageLoader {
- enum {
- MAX_LOADERS = 8
- };
- static ImageFormatLoader *loader[MAX_LOADERS];
- static int loader_count;
- protected:
- public:
- static Error load_image(String p_file, Ref<Image> p_image, FileAccess *p_custom = NULL, bool p_force_linear = false, float p_scale = 1.0);
- static void get_recognized_extensions(List<String> *p_extensions);
- static bool recognize(const String &p_extension);
- static void add_image_format_loader(ImageFormatLoader *p_loader);
- };
- #endif
|