Skip to content

Commit

Permalink
Move remaining dummy drivers to servers.
Browse files Browse the repository at this point in the history
  • Loading branch information
Faless committed Jun 1, 2021
1 parent 8594613 commit 8cdef21
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 26 deletions.
3 changes: 0 additions & 3 deletions drivers/register_driver_types.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,13 @@

#include "register_driver_types.h"

#include "drivers/dummy/display_server_headless.h"
#include "drivers/png/image_loader_png.h"
#include "drivers/png/resource_saver_png.h"

static ImageLoaderPNG *image_loader_png;
static Ref<ResourceSaverPNG> resource_saver_png;

void register_core_driver_types() {
DisplayServerHeadless::register_headless_driver();

image_loader_png = memnew(ImageLoaderPNG);
ImageLoader::add_image_format_loader(image_loader_png);

Expand Down
2 changes: 1 addition & 1 deletion platform/javascript/display_server_javascript.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@

#include "platform/javascript/display_server_javascript.h"

#include "drivers/dummy/rasterizer_dummy.h"
#include "platform/javascript/os_javascript.h"
#include "servers/rendering/rasterizer_dummy.h"

#include <emscripten.h>
#include <png.h>
Expand Down
16 changes: 11 additions & 5 deletions servers/display_server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,18 @@

#include "core/input/input.h"
#include "scene/resources/texture.h"
#include "servers/display_server_headless.h"

DisplayServer *DisplayServer::singleton = nullptr;
DisplayServer::SwitchVSyncCallbackInThread DisplayServer::switch_vsync_function = nullptr;

bool DisplayServer::hidpi_allowed = false;

DisplayServer::DisplayServerCreate DisplayServer::server_create_functions[DisplayServer::MAX_SERVERS];
int DisplayServer::server_create_count = 0;
DisplayServer::DisplayServerCreate DisplayServer::server_create_functions[DisplayServer::MAX_SERVERS] = {
{ "headless", &DisplayServerHeadless::create_func, &DisplayServerHeadless::get_rendering_drivers_func }
};

int DisplayServer::server_create_count = 1;

void DisplayServer::global_menu_add_item(const String &p_menu_root, const String &p_label, const Callable &p_callback, const Variant &p_tag) {
WARN_PRINT("Global menus not supported by this display server.");
Expand Down Expand Up @@ -560,9 +564,11 @@ void DisplayServer::_bind_methods() {

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].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;
// Headless display server is always last
server_create_functions[server_create_count] = server_create_functions[server_create_count - 1];
server_create_functions[server_create_count - 1].name = p_name;
server_create_functions[server_create_count - 1].create_function = p_function;
server_create_functions[server_create_count - 1].get_rendering_drivers_function = p_get_drivers;
server_create_count++;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,24 @@

#include "servers/display_server.h"

#include "drivers/dummy/rasterizer_dummy.h"
#include "servers/rendering/rasterizer_dummy.h"

class DisplayServerHeadless : public DisplayServer {
private:
friend class DisplayServer;

static Vector<String> get_rendering_drivers_func() {
Vector<String> drivers;
drivers.push_back("dummy");
return drivers;
}

static DisplayServer *create_func(const String &p_rendering_driver, DisplayServer::WindowMode p_mode, uint32_t p_flags, const Vector2i &p_resolution, Error &r_error) {
r_error = OK;
RasterizerDummy::make_current();
return memnew(DisplayServerHeadless());
}

public:
bool has_feature(Feature p_feature) const override { return false; }
String get_name() const override { return "headless"; }
Expand Down Expand Up @@ -105,22 +120,6 @@ class DisplayServerHeadless : public DisplayServer {

void set_icon(const Ref<Image> &p_icon) override {}

static void register_headless_driver() {
register_create_function("headless", create_func, get_rendering_drivers_func);
}

static Vector<String> get_rendering_drivers_func() {
Vector<String> drivers;
drivers.push_back("dummy");
return drivers;
}

static DisplayServer *create_func(const String &p_rendering_driver, DisplayServer::WindowMode p_mode, uint32_t p_flags, const Vector2i &p_resolution, Error &r_error) {
r_error = OK;
RasterizerDummy::make_current();
return memnew(DisplayServerHeadless());
}

DisplayServerHeadless() {}
~DisplayServerHeadless() {}
};
Expand Down
File renamed without changes.

0 comments on commit 8cdef21

Please sign in to comment.