summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Roubinsky <chaosus89@gmail.com>2019-04-24 09:41:06 +0300
committerGitHub <noreply@github.com>2019-04-24 09:41:06 +0300
commit93e7eb0ddbbe5bff9129a5486c5490834cb0f36e (patch)
tree92dacba89f11a50d156e58b7e182a8fe35721823
parentea56d18256c68e03b7d534a0b627e35786733d0f (diff)
parent21ca9f6c7c1bc2f8ae7b53da97d2ad8037573781 (diff)
Merge pull request #28375 from Chaosus/fix_vs_loopback
Disallow loopback connection in visual shaders
-rw-r--r--editor/plugins/visual_shader_editor_plugin.cpp1
-rw-r--r--scene/resources/visual_shader.cpp3
2 files changed, 3 insertions, 1 deletions
diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp
index 4fc323f119..7e48d054ad 100644
--- a/editor/plugins/visual_shader_editor_plugin.cpp
+++ b/editor/plugins/visual_shader_editor_plugin.cpp
@@ -757,7 +757,6 @@ void VisualShaderEditor::_connection_request(const String &p_from, int p_from_in
int to = p_to.to_int();
if (!visual_shader->can_connect_nodes(type, from, p_from_index, to, p_to_index)) {
- EditorNode::get_singleton()->show_warning(TTR("Unable to connect, port may be in use or connection may be invalid."));
return;
}
diff --git a/scene/resources/visual_shader.cpp b/scene/resources/visual_shader.cpp
index 4229147ba2..b8f21948c3 100644
--- a/scene/resources/visual_shader.cpp
+++ b/scene/resources/visual_shader.cpp
@@ -240,6 +240,9 @@ bool VisualShader::can_connect_nodes(Type p_type, int p_from_node, int p_from_po
if (!g->nodes.has(p_from_node))
return false;
+ if (p_from_node == p_to_node)
+ return false;
+
if (p_from_port < 0 || p_from_port >= g->nodes[p_from_node].node->get_output_port_count())
return false;