Merge pull request #19501 from Zylann/custom_loaders

Added basic support for custom resource savers and loaders
This commit is contained in:
Rémi Verschelde
2018-12-16 14:26:56 +01:00
committed by GitHub
77 changed files with 1102 additions and 145 deletions

View File

@ -35,6 +35,7 @@
#include "scene/resources/texture.h"
class ResourceFormatDummyTexture : public ResourceFormatLoader {
GDCLASS(ResourceFormatDummyTexture, ResourceFormatLoader)
public:
virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL);
virtual void get_recognized_extensions(List<String> *p_extensions) const;

View File

@ -35,6 +35,7 @@
#include "core/io/resource_saver.h"
class ResourceSaverPNG : public ResourceFormatSaver {
GDCLASS(ResourceSaverPNG, ResourceFormatSaver)
public:
static Error save_image(const String &p_path, const Ref<Image> &p_img);

View File

@ -42,15 +42,15 @@
#include "platform/windows/export/export.h"
#endif
static ImageLoaderPNG *image_loader_png = NULL;
static ResourceSaverPNG *resource_saver_png = NULL;
static ImageLoaderPNG *image_loader_png;
static Ref<ResourceSaverPNG> resource_saver_png;
void register_core_driver_types() {
image_loader_png = memnew(ImageLoaderPNG);
ImageLoader::add_image_format_loader(image_loader_png);
resource_saver_png = memnew(ResourceSaverPNG);
resource_saver_png.instance();
ResourceSaver::add_resource_format_saver(resource_saver_png);
}
@ -58,8 +58,11 @@ void unregister_core_driver_types() {
if (image_loader_png)
memdelete(image_loader_png);
if (resource_saver_png)
memdelete(resource_saver_png);
if (resource_saver_png.is_valid()) {
ResourceSaver::remove_resource_format_saver(resource_saver_png);
resource_saver_png.unref();
}
}
void register_driver_types() {