summaryrefslogtreecommitdiffstats
path: root/servers
diff options
context:
space:
mode:
Diffstat (limited to 'servers')
-rw-r--r--servers/rendering_server.cpp19
-rw-r--r--servers/rendering_server.h4
2 files changed, 23 insertions, 0 deletions
diff --git a/servers/rendering_server.cpp b/servers/rendering_server.cpp
index e8708e8da8..2d61e47062 100644
--- a/servers/rendering_server.cpp
+++ b/servers/rendering_server.cpp
@@ -2204,6 +2204,25 @@ void RenderingServer::fix_surface_compatibility(SurfaceData &p_surface, const St
}
#endif
+#ifdef TOOLS_ENABLED
+void RenderingServer::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const {
+ String pf = p_function;
+ if (p_idx == 0) {
+ if (pf == "global_shader_parameter_set" || pf == "global_shader_parameter_set_override" ||
+ pf == "global_shader_parameter_get" || pf == "global_shader_parameter_get_type" || pf == "global_shader_parameter_remove") {
+ for (StringName E : global_shader_parameter_get_list()) {
+ r_options->push_back(E.operator String().quote());
+ }
+ } else if (pf == "has_os_feature") {
+ for (String E : { "\"rgtc\"", "\"s3tc\"", "\"bptc\"", "\"etc\"", "\"etc2\"", "\"astc\"" }) {
+ r_options->push_back(E);
+ }
+ }
+ }
+ Object::get_argument_options(p_function, p_idx, r_options);
+}
+#endif
+
void RenderingServer::_bind_methods() {
BIND_CONSTANT(NO_INDEX_ARRAY);
BIND_CONSTANT(ARRAY_WEIGHTS_SIZE);
diff --git a/servers/rendering_server.h b/servers/rendering_server.h
index 016801fa6e..8b17463b4d 100644
--- a/servers/rendering_server.h
+++ b/servers/rendering_server.h
@@ -1639,6 +1639,10 @@ public:
virtual void call_on_render_thread(const Callable &p_callable) = 0;
+#ifdef TOOLS_ENABLED
+ virtual void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const override;
+#endif
+
RenderingServer();
virtual ~RenderingServer();