summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <remi@verschelde.fr>2022-06-08 07:14:48 +0200
committerGitHub <noreply@github.com>2022-06-08 07:14:48 +0200
commit2e041f91fd1a38541f846930718f079adbe99cfb (patch)
treeab65c4350442237259178ae117bbfdb23f6035a0
parent60eec78a1fd92f3f7685dec65db62f6c42941885 (diff)
parent80025171cd528ffe0eee4c437c1325f7111558c0 (diff)
Merge pull request #61795 from KoBeWi/image_comes_back
Re-add internal image field to ImageTexture
-rw-r--r--scene/resources/texture.cpp18
-rw-r--r--scene/resources/texture.h5
2 files changed, 23 insertions, 0 deletions
diff --git a/scene/resources/texture.cpp b/scene/resources/texture.cpp
index e001aeffc4..815343b044 100644
--- a/scene/resources/texture.cpp
+++ b/scene/resources/texture.cpp
@@ -147,6 +147,24 @@ void ImageTexture::reload_from_file() {
}
}
+bool ImageTexture::_set(const StringName &p_name, const Variant &p_value) {
+ if (p_name == "image") {
+ create_from_image(p_value);
+ }
+ return false;
+}
+
+bool ImageTexture::_get(const StringName &p_name, Variant &r_ret) const {
+ if (p_name == "image") {
+ r_ret = get_image();
+ }
+ return false;
+}
+
+void ImageTexture::_get_property_list(List<PropertyInfo> *p_list) const {
+ p_list->push_back(PropertyInfo(Variant::OBJECT, PNAME("image"), PROPERTY_HINT_RESOURCE_TYPE, "Image", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT));
+}
+
void ImageTexture::create_from_image(const Ref<Image> &p_image) {
ERR_FAIL_COND_MSG(p_image.is_null() || p_image->is_empty(), "Invalid image");
w = p_image->get_width();
diff --git a/scene/resources/texture.h b/scene/resources/texture.h
index 3e8ac060c4..317756e313 100644
--- a/scene/resources/texture.h
+++ b/scene/resources/texture.h
@@ -102,6 +102,11 @@ class ImageTexture : public Texture2D {
protected:
virtual void reload_from_file() override;
+
+ bool _set(const StringName &p_name, const Variant &p_value);
+ bool _get(const StringName &p_name, Variant &r_ret) const;
+ void _get_property_list(List<PropertyInfo> *p_list) const;
+
static void _bind_methods();
public: