summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Roubinsky <chaosus89@gmail.com>2021-12-03 10:20:44 +0300
committerYuri Roubinsky <chaosus89@gmail.com>2021-12-03 10:20:44 +0300
commit10b10ae1fa6978f701e368820e639fdea2e1e493 (patch)
tree232503c3c48c9f896f45e022a3f2b2920adf0e3b
parent1f666a972fdabb5941bfd62f1f9e07489ba7b474 (diff)
Fix `^=` operator in shaders
-rw-r--r--servers/rendering/shader_language.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp
index 052b1d6d9f..f5e91d0423 100644
--- a/servers/rendering/shader_language.cpp
+++ b/servers/rendering/shader_language.cpp
@@ -88,7 +88,8 @@ String ShaderLanguage::get_operator_text(Operator p_op) {
"--",
"()",
"construct",
- "index" };
+ "index",
+ "empty" };
return op_names[p_op];
}
@@ -474,6 +475,10 @@ ShaderLanguage::Token ShaderLanguage::_get_token() {
case ':':
return _make_token(TK_COLON);
case '^':
+ if (GETCHAR(0) == '=') {
+ char_idx++;
+ return _make_token(TK_OP_ASSIGN_BIT_XOR);
+ }
return _make_token(TK_OP_BIT_XOR);
case '~':
return _make_token(TK_OP_BIT_INVERT);