Merge pull request #68808 from CherrySodaPop/global-instance-uniform

This commit is contained in:
Yuri Rubinsky 2022-11-18 09:49:49 +03:00 committed by GitHub
commit e8f9cd8ac5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 14 deletions

View File

@ -8190,25 +8190,27 @@ Error ShaderLanguage::_parse_shader(const HashMap<StringName, FunctionInfo> &p_f
};
[[fallthrough]];
case TK_INSTANCE: {
if (tk.type == TK_INSTANCE) {
#ifdef DEBUG_ENABLED
keyword_completion_context = CF_UNIFORM_KEYWORD;
if (_lookup_next(next)) {
if (next.type == TK_UNIFORM) {
keyword_completion_context ^= CF_UNIFORM_KEYWORD;
keyword_completion_context = CF_UNIFORM_KEYWORD;
if (_lookup_next(next)) {
if (next.type == TK_UNIFORM) {
keyword_completion_context ^= CF_UNIFORM_KEYWORD;
}
}
}
#endif // DEBUG_ENABLED
if (String(shader_type_identifier) != "spatial") {
_set_error(vformat(RTR("Uniform instances are not yet implemented for '%s' shaders."), shader_type_identifier));
return ERR_PARSE_ERROR;
}
if (uniform_scope == ShaderNode::Uniform::SCOPE_LOCAL) {
tk = _get_token();
if (tk.type != TK_UNIFORM) {
_set_expected_after_error("uniform", "instance");
if (String(shader_type_identifier) != "spatial") {
_set_error(vformat(RTR("Uniform instances are not yet implemented for '%s' shaders."), shader_type_identifier));
return ERR_PARSE_ERROR;
}
uniform_scope = ShaderNode::Uniform::SCOPE_INSTANCE;
if (uniform_scope == ShaderNode::Uniform::SCOPE_LOCAL) {
tk = _get_token();
if (tk.type != TK_UNIFORM) {
_set_expected_after_error("uniform", "instance");
return ERR_PARSE_ERROR;
}
uniform_scope = ShaderNode::Uniform::SCOPE_INSTANCE;
}
}
};
[[fallthrough]];