[Core] Make ImageFormatLoader extensible.
This commit is contained in:
@ -37,7 +37,7 @@
|
||||
|
||||
#include "thirdparty/tinyexr/tinyexr.h"
|
||||
|
||||
Error ImageLoaderTinyEXR::load_image(Ref<Image> p_image, Ref<FileAccess> f, uint32_t p_flags, float p_scale) {
|
||||
Error ImageLoaderTinyEXR::load_image(Ref<Image> p_image, Ref<FileAccess> f, BitField<ImageFormatLoader::LoaderFlags> p_flags, float p_scale) {
|
||||
Vector<uint8_t> src_image;
|
||||
uint64_t src_image_len = f->get_length();
|
||||
ERR_FAIL_COND_V(src_image_len == 0, ERR_FILE_CORRUPT);
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
|
||||
class ImageLoaderTinyEXR : public ImageFormatLoader {
|
||||
public:
|
||||
virtual Error load_image(Ref<Image> p_image, Ref<FileAccess> f, uint32_t p_flags, float p_scale);
|
||||
virtual Error load_image(Ref<Image> p_image, Ref<FileAccess> f, BitField<ImageFormatLoader::LoaderFlags> p_flags, float p_scale);
|
||||
virtual void get_recognized_extensions(List<String> *p_extensions) const;
|
||||
ImageLoaderTinyEXR();
|
||||
};
|
||||
|
||||
@ -33,14 +33,14 @@
|
||||
#include "image_loader_tinyexr.h"
|
||||
#include "image_saver_tinyexr.h"
|
||||
|
||||
static ImageLoaderTinyEXR *image_loader_tinyexr = nullptr;
|
||||
static Ref<ImageLoaderTinyEXR> image_loader_tinyexr;
|
||||
|
||||
void initialize_tinyexr_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
image_loader_tinyexr = memnew(ImageLoaderTinyEXR);
|
||||
image_loader_tinyexr.instantiate();
|
||||
ImageLoader::add_image_format_loader(image_loader_tinyexr);
|
||||
|
||||
Image::save_exr_func = save_exr;
|
||||
@ -52,7 +52,8 @@ void uninitialize_tinyexr_module(ModuleInitializationLevel p_level) {
|
||||
return;
|
||||
}
|
||||
|
||||
memdelete(image_loader_tinyexr);
|
||||
ImageLoader::remove_image_format_loader(image_loader_tinyexr);
|
||||
image_loader_tinyexr.unref();
|
||||
|
||||
Image::save_exr_func = nullptr;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user