From ef5095720b56e72d99b8ca2773e2a5fa24f7097d Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Tue, 14 Aug 2018 16:52:40 -0300 Subject: [PATCH] -Deprecate ImageTexture::load -Add warning to Image::load when loading resources -Add script binding for get_configuration_warning --- core/image.cpp | 8 ++++++-- scene/main/node.cpp | 4 ++++ scene/resources/texture.cpp | 7 +++++-- scene/resources/texture.h | 2 ++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/core/image.cpp b/core/image.cpp index 65905c83e8..c94f2c3534 100644 --- a/core/image.cpp +++ b/core/image.cpp @@ -36,8 +36,8 @@ #include "math_funcs.h" #include "print_string.h" +#include "io/resource_loader.h" #include "thirdparty/misc/hq2x.h" - #include const char *Image::format_names[Image::FORMAT_MAX] = { @@ -1582,7 +1582,11 @@ Image::AlphaMode Image::detect_alpha() const { } Error Image::load(const String &p_path) { - +#ifdef DEBUG_ENABLED + if (p_path.begins_with("res://") && ResourceLoader::exists(p_path)) { + WARN_PRINTS("Loaded resource as image file, this will not work on export: '" + p_path + "'. Instead, import the image file as an Image resource and load it normally as a resource."); + } +#endif return ImageLoader::load_image(p_path, this); } diff --git a/scene/main/node.cpp b/scene/main/node.cpp index 6144240328..372ad7367e 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -2555,6 +2555,9 @@ void Node::clear_internal_tree_resource_paths() { String Node::get_configuration_warning() const { + if (get_script_instance()) { + return get_script_instance()->call("_get_configuration_warning"); + } return String(); } @@ -2763,6 +2766,7 @@ void Node::_bind_methods() { BIND_VMETHOD(MethodInfo("_input", PropertyInfo(Variant::OBJECT, "event", PROPERTY_HINT_RESOURCE_TYPE, "InputEvent"))); BIND_VMETHOD(MethodInfo("_unhandled_input", PropertyInfo(Variant::OBJECT, "event", PROPERTY_HINT_RESOURCE_TYPE, "InputEvent"))); BIND_VMETHOD(MethodInfo("_unhandled_key_input", PropertyInfo(Variant::OBJECT, "event", PROPERTY_HINT_RESOURCE_TYPE, "InputEventKey"))); + BIND_VMETHOD(MethodInfo(Variant::STRING, "_get_configuration_warning")); //ClassDB::bind_method(D_METHOD("get_child",&Node::get_child,PH("index"))); //ClassDB::bind_method(D_METHOD("get_node",&Node::get_node,PH("path"))); diff --git a/scene/resources/texture.cpp b/scene/resources/texture.cpp index 536c653a0c..2f663431de 100644 --- a/scene/resources/texture.cpp +++ b/scene/resources/texture.cpp @@ -214,9 +214,10 @@ Image::Format ImageTexture::get_format() const { return format; } - +#ifndef DISABLE_DEPRECATED Error ImageTexture::load(const String &p_path) { + WARN_DEPRECATED Ref img; img.instance(); Error err = img->load(p_path); @@ -225,7 +226,7 @@ Error ImageTexture::load(const String &p_path) { } return err; } - +#endif void ImageTexture::set_data(const Ref &p_image) { ERR_FAIL_COND(p_image.is_null()); @@ -345,7 +346,9 @@ void ImageTexture::_bind_methods() { ClassDB::bind_method(D_METHOD("create", "width", "height", "format", "flags"), &ImageTexture::create, DEFVAL(FLAGS_DEFAULT)); ClassDB::bind_method(D_METHOD("create_from_image", "image", "flags"), &ImageTexture::create_from_image, DEFVAL(FLAGS_DEFAULT)); ClassDB::bind_method(D_METHOD("get_format"), &ImageTexture::get_format); +#ifndef DISABLE_DEPRECATED ClassDB::bind_method(D_METHOD("load", "path"), &ImageTexture::load); +#endif ClassDB::bind_method(D_METHOD("set_data", "image"), &ImageTexture::set_data); ClassDB::bind_method(D_METHOD("set_storage", "mode"), &ImageTexture::set_storage); ClassDB::bind_method(D_METHOD("get_storage"), &ImageTexture::get_storage); diff --git a/scene/resources/texture.h b/scene/resources/texture.h index 1c18189b2c..c15efb6eaa 100644 --- a/scene/resources/texture.h +++ b/scene/resources/texture.h @@ -125,7 +125,9 @@ public: void set_flags(uint32_t p_flags); uint32_t get_flags() const; Image::Format get_format() const; +#ifndef DISABLE_DEPRECATED Error load(const String &p_path); +#endif void set_data(const Ref &p_image); Ref get_data() const;