summaryrefslogtreecommitdiff
path: root/servers
diff options
context:
space:
mode:
Diffstat (limited to 'servers')
-rw-r--r--servers/display_server.cpp7
-rw-r--r--servers/display_server.h10
2 files changed, 11 insertions, 6 deletions
diff --git a/servers/display_server.cpp b/servers/display_server.cpp
index 1685328cbe..9798c57707 100644
--- a/servers/display_server.cpp
+++ b/servers/display_server.cpp
@@ -540,15 +540,18 @@ void DisplayServer::_bind_methods() {
BIND_ENUM_CONSTANT(WINDOW_EVENT_DPI_CHANGE);
}
-void DisplayServer::register_create_function(const char *p_name, CreateFunction p_function, GetVideoDriversFunction p_get_drivers) {
+void DisplayServer::register_create_function(const char *p_name, CreateFunction p_function, GetRenderingDriversFunction p_get_drivers) {
ERR_FAIL_COND(server_create_count == MAX_SERVERS);
- server_create_functions[server_create_count].create_function = p_function;
server_create_functions[server_create_count].name = p_name;
+ server_create_functions[server_create_count].create_function = p_function;
+ server_create_functions[server_create_count].get_rendering_drivers_function = p_get_drivers;
server_create_count++;
}
+
int DisplayServer::get_create_function_count() {
return server_create_count;
}
+
const char *DisplayServer::get_create_function_name(int p_index) {
ERR_FAIL_INDEX_V(p_index, server_create_count, nullptr);
return server_create_functions[p_index].name;
diff --git a/servers/display_server.h b/servers/display_server.h
index 8ed0b11d03..4803eeb084 100644
--- a/servers/display_server.h
+++ b/servers/display_server.h
@@ -57,8 +57,9 @@ public:
WINDOW_MODE_FULLSCREEN
};
- typedef DisplayServer *(*CreateFunction)(const String &, WindowMode, uint32_t, const Size2i &, Error &r_error); //video driver, window mode, resolution
- typedef Vector<String> (*GetVideoDriversFunction)(); //video driver, window mode, resolution
+ typedef DisplayServer *(*CreateFunction)(const String &, WindowMode, uint32_t, const Size2i &, Error &r_error);
+ typedef Vector<String> (*GetRenderingDriversFunction)();
+
private:
static void _input_set_mouse_mode(InputFilter::MouseMode p_mode);
static InputFilter::MouseMode _input_get_mouse_mode();
@@ -68,14 +69,15 @@ private:
protected:
static void _bind_methods();
+
enum {
MAX_SERVERS = 64
};
struct DisplayServerCreate {
const char *name;
- GetVideoDriversFunction get_rendering_drivers_function;
CreateFunction create_function;
+ GetRenderingDriversFunction get_rendering_drivers_function;
};
static DisplayServerCreate server_create_functions[MAX_SERVERS];
@@ -361,7 +363,7 @@ public:
virtual void set_context(Context p_context);
- static void register_create_function(const char *p_name, CreateFunction p_function, GetVideoDriversFunction p_get_drivers);
+ static void register_create_function(const char *p_name, CreateFunction p_function, GetRenderingDriversFunction p_get_drivers);
static int get_create_function_count();
static const char *get_create_function_name(int p_index);
static Vector<String> get_create_function_rendering_drivers(int p_index);