浏览代码

Merge pull request #31345 from Chaosus/shader_const_strict

Force user to initialize local shader constants
Rémi Verschelde 6 年之前
父节点
当前提交
0a10a93fb0
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9 0
      servers/visual/shader_language.cpp

+ 9 - 0
servers/visual/shader_language.cpp

@@ -4022,6 +4022,10 @@ Error ShaderLanguage::_parse_block(BlockNode *p_block, const Map<StringName, Bui
 							_set_error("Expected array initialization");
 							return ERR_PARSE_ERROR;
 						}
+						if (is_const) {
+							_set_error("Expected initialization of constant");
+							return ERR_PARSE_ERROR;
+						}
 					}
 
 					node->declarations.push_back(decl);
@@ -4051,6 +4055,11 @@ Error ShaderLanguage::_parse_block(BlockNode *p_block, const Map<StringName, Bui
 					tk = _get_token();
 					node->declarations.push_back(decl);
 				} else {
+					if (is_const) {
+						_set_error("Expected initialization of constant");
+						return ERR_PARSE_ERROR;
+					}
+
 					VariableDeclarationNode *node = alloc_node<VariableDeclarationNode>();
 					node->datatype = type;
 					node->precision = precision;