瀏覽代碼

Merge pull request #39822 from Chaosus/shader_fix_const_pass

Fix few places in shaders where const passing still incorrect
Yuri Roubinsky 5 年之前
父節點
當前提交
f1d7bb6b36
共有 1 個文件被更改,包括 4 次插入2 次删除
  1. 4 2
      servers/rendering/shader_language.cpp

+ 4 - 2
servers/rendering/shader_language.cpp

@@ -3560,7 +3560,7 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
 											error = true;
 										} else if (n->type == Node::TYPE_ARRAY) {
 											ArrayNode *an = static_cast<ArrayNode *>(n);
-											if (an->call_expression != nullptr) {
+											if (an->call_expression != nullptr || an->is_const) {
 												error = true;
 											}
 										} else if (n->type == Node::TYPE_VARIABLE) {
@@ -3569,7 +3569,9 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
 												error = true;
 											} else {
 												StringName varname = vn->name;
-												if (shader->uniforms.has(varname)) {
+												if (shader->constants.has(varname)) {
+													error = true;
+												} else if (shader->uniforms.has(varname)) {
 													error = true;
 												} else {
 													if (p_builtin_types.has(varname)) {