diff options
author | TML <houjunhao33@163.com> | 2024-01-12 09:37:23 +0800 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-20 18:14:47 +0100 |
commit | 6a17f2a82daaf5daf28f5a8d74afe199ddc15186 (patch) | |
tree | 96e149417323e6aa1edbae1891ce9ae8435e9a18 | |
parent | b8f106acb24387d2f2c746a586edc0728fd10aaf (diff) | |
download | redot-engine-6a17f2a82daaf5daf28f5a8d74afe199ddc15186.tar.gz |
Expose `CanvasLayer::get_canvas_layer_node()`
-rw-r--r-- | doc/classes/CanvasItem.xml | 6 | ||||
-rw-r--r-- | scene/main/canvas_item.cpp | 6 | ||||
-rw-r--r-- | scene/main/canvas_item.h | 1 |
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(); |