summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTML <houjunhao33@163.com>2024-01-12 09:37:23 +0800
committerRémi Verschelde <rverschelde@gmail.com>2024-02-20 18:14:47 +0100
commit6a17f2a82daaf5daf28f5a8d74afe199ddc15186 (patch)
tree96e149417323e6aa1edbae1891ce9ae8435e9a18
parentb8f106acb24387d2f2c746a586edc0728fd10aaf (diff)
downloadredot-engine-6a17f2a82daaf5daf28f5a8d74afe199ddc15186.tar.gz
Expose `CanvasLayer::get_canvas_layer_node()`
-rw-r--r--doc/classes/CanvasItem.xml6
-rw-r--r--scene/main/canvas_item.cpp6
-rw-r--r--scene/main/canvas_item.h1
3 files changed, 13 insertions, 0 deletions
diff --git a/doc/classes/CanvasItem.xml b/doc/classes/CanvasItem.xml
index 6f4dc47fb9..0113131f25 100644
--- a/doc/classes/CanvasItem.xml
+++ b/doc/classes/CanvasItem.xml
@@ -411,6 +411,12 @@
Returns the canvas item RID used by [RenderingServer] for this item.
</description>
</method>
+ <method name="get_canvas_layer_node" qualifiers="const">
+ <return type="CanvasLayer" />
+ <description>
+ Returns the [CanvasLayer] that contains this node, or [code]null[/code] if the node is not in any [CanvasLayer].
+ </description>
+ </method>
<method name="get_canvas_transform" qualifiers="const">
<return type="Transform2D" />
<description>
diff --git a/scene/main/canvas_item.cpp b/scene/main/canvas_item.cpp
index 093b52b650..2f435cafee 100644
--- a/scene/main/canvas_item.cpp
+++ b/scene/main/canvas_item.cpp
@@ -1169,6 +1169,7 @@ void CanvasItem::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_local_mouse_position"), &CanvasItem::get_local_mouse_position);
ClassDB::bind_method(D_METHOD("get_global_mouse_position"), &CanvasItem::get_global_mouse_position);
ClassDB::bind_method(D_METHOD("get_canvas"), &CanvasItem::get_canvas);
+ ClassDB::bind_method(D_METHOD("get_canvas_layer_node"), &CanvasItem::get_canvas_layer_node);
ClassDB::bind_method(D_METHOD("get_world_2d"), &CanvasItem::get_world_2d);
//ClassDB::bind_method(D_METHOD("get_viewport"),&CanvasItem::get_viewport);
@@ -1325,6 +1326,11 @@ int CanvasItem::get_canvas_layer() const {
}
}
+CanvasLayer *CanvasItem::get_canvas_layer_node() const {
+ ERR_READ_THREAD_GUARD_V(nullptr);
+ return canvas_layer;
+}
+
void CanvasItem::set_visibility_layer(uint32_t p_visibility_layer) {
ERR_THREAD_GUARD;
visibility_layer = p_visibility_layer;
diff --git a/scene/main/canvas_item.h b/scene/main/canvas_item.h
index ce1dbce6c3..03b01f7ef7 100644
--- a/scene/main/canvas_item.h
+++ b/scene/main/canvas_item.h
@@ -363,6 +363,7 @@ public:
virtual Rect2 get_anchorable_rect() const { return Rect2(0, 0, 0, 0); };
int get_canvas_layer() const;
+ CanvasLayer *get_canvas_layer_node() const;
CanvasItem();
~CanvasItem();