summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Roubinsky <chaosus89@gmail.com>2020-02-13 23:19:59 +0300
committerGitHub <noreply@github.com>2020-02-13 23:19:59 +0300
commit234d355081d2ef61d84139d73b2ebad5abc4fe30 (patch)
treed066c98d6e2e037ceb0c88db12e37085fd829665
parent17791363369eec42d097b426fc7aa4359e40fae8 (diff)
parent41643e268e318d62ca6e7f9d16c12dc2dbba74c6 (diff)
Merge pull request #36187 from Chaosus/shader_forbid_out_samplers
Prevent usage 'out' modifier on opaque shader types (textures currently)
-rw-r--r--servers/visual/shader_language.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/servers/visual/shader_language.cpp b/servers/visual/shader_language.cpp
index 6166489302..76348373c9 100644
--- a/servers/visual/shader_language.cpp
+++ b/servers/visual/shader_language.cpp
@@ -6273,6 +6273,13 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct
return ERR_PARSE_ERROR;
}
+ if (qualifier == ARGUMENT_QUALIFIER_OUT || qualifier == ARGUMENT_QUALIFIER_INOUT) {
+ if (is_sampler_type(get_token_datatype(tk.type))) {
+ _set_error("Opaque types cannot be output parameters.");
+ return ERR_PARSE_ERROR;
+ }
+ }
+
if (is_struct) {
ptype = TYPE_STRUCT;
} else {