summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2019-05-24 17:02:26 +0200
committerGitHub <noreply@github.com>2019-05-24 17:02:26 +0200
commit193837a8f5bce250e69c4580d157ccba17af70ce (patch)
tree3b08bf9927880a38c2abf84735cd8b15ca9321cc
parent521aad3dca45ccc3d914fa3942bc929f4fb18c7d (diff)
parent1b9d26765f88d37ecd21dd3ce7fb1fecda15f4d9 (diff)
Merge pull request #28829 from vreon/swizzle-up
Allow constructing larger data types by swizzling
-rw-r--r--servers/visual/shader_language.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/servers/visual/shader_language.cpp b/servers/visual/shader_language.cpp
index cb3a744730..6efd05593e 100644
--- a/servers/visual/shader_language.cpp
+++ b/servers/visual/shader_language.cpp
@@ -2968,6 +2968,10 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
member_type = DataType(dt - 1);
} else if (l == 2) {
member_type = dt;
+ } else if (l == 3) {
+ member_type = DataType(dt + 1);
+ } else if (l == 4) {
+ member_type = DataType(dt + 2);
} else {
ok = false;
break;
@@ -3001,6 +3005,8 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
member_type = DataType(dt - 1);
} else if (l == 3) {
member_type = dt;
+ } else if (l == 4) {
+ member_type = DataType(dt + 1);
} else {
ok = false;
break;