summaryrefslogtreecommitdiffstats
path: root/servers/rendering/shader_language.cpp
diff options
context:
space:
mode:
authorYuri Roubinsky <chaosus89@gmail.com>2021-11-19 11:25:23 +0300
committerYuri Roubinsky <chaosus89@gmail.com>2021-11-19 12:14:13 +0300
commitf4c0e90fd94708b26abbe945e131e0b96836b34a (patch)
tree0db77967337f785ec7a4872949ce49c3c5b787fa /servers/rendering/shader_language.cpp
parent0deccc550c6898f6719b05bd01d0676b15a7e3b2 (diff)
downloadredot-engine-f4c0e90fd94708b26abbe945e131e0b96836b34a.tar.gz
Allow passing non-variable constant to const function param in shaders
Diffstat (limited to 'servers/rendering/shader_language.cpp')
-rw-r--r--servers/rendering/shader_language.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp
index d803d5fcf8..1a994548d8 100644
--- a/servers/rendering/shader_language.cpp
+++ b/servers/rendering/shader_language.cpp
@@ -4920,7 +4920,9 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
bool error = false;
Node *n = func->arguments[argidx];
if (n->type == Node::TYPE_CONSTANT || n->type == Node::TYPE_OPERATOR) {
- error = true;
+ if (!call_function->arguments[i].is_const) {
+ error = true;
+ }
} else if (n->type == Node::TYPE_ARRAY) {
ArrayNode *an = static_cast<ArrayNode *>(n);
if (an->call_expression != nullptr || an->is_const) {