diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2020-09-22 16:37:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-22 16:37:14 +0200 |
commit | 466a6d75e41001b5def1f153d6407c05729332d5 (patch) | |
tree | 55b96f259157f184995a6b8112073102754aa283 | |
parent | 5824766a3cea92040dea6cc0cf59ee95ed86a68e (diff) | |
parent | 53740c69dfd7dcfcdac1fa97c46cd6861ad4d9e2 (diff) |
Merge pull request #42215 from Chaosus/forbid_invalid_varyings
Forbids varying declaration in particles and sky shaders
-rw-r--r-- | servers/rendering/shader_language.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp index 28c41fb2dc..6c835fcadf 100644 --- a/servers/rendering/shader_language.cpp +++ b/servers/rendering/shader_language.cpp @@ -6099,6 +6099,14 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct case TK_UNIFORM: case TK_VARYING: { bool uniform = tk.type == TK_UNIFORM; + + if (!uniform) { + if (shader_type_identifier == "particles" || shader_type_identifier == "sky") { + _set_error(vformat("Varyings cannot be used in '%s' shaders!", shader_type_identifier)); + return ERR_PARSE_ERROR; + } + } + DataPrecision precision = PRECISION_DEFAULT; DataInterpolation interpolation = INTERPOLATION_SMOOTH; DataType type; |