diff options
author | Pedro J. Estébanez <pedrojrulez@gmail.com> | 2024-04-09 11:47:06 +0200 |
---|---|---|
committer | Pedro J. Estébanez <pedrojrulez@gmail.com> | 2024-04-10 18:47:42 +0200 |
commit | c28f5901c7f9ac8885032f9b30db788e08e72911 (patch) | |
tree | 4ffd9b050f4044600e982a2575439f323b68ec53 /servers | |
parent | 1b104ffcd8bc4573924754552508f5416573a7a1 (diff) | |
download | redot-engine-c28f5901c7f9ac8885032f9b30db788e08e72911.tar.gz |
Polish interaction between windowing, input and rendering
- Adapt GL make/release API to the current architecture.
- Fix DisplayServer being locked while dispatching input (prevent deadlocks).
Diffstat (limited to 'servers')
-rw-r--r-- | servers/display_server.cpp | 4 | ||||
-rw-r--r-- | servers/display_server.h | 1 | ||||
-rw-r--r-- | servers/physics_server_2d_wrap_mt.cpp | 1 | ||||
-rw-r--r-- | servers/physics_server_3d_wrap_mt.cpp | 1 | ||||
-rw-r--r-- | servers/rendering/rendering_server_default.cpp | 3 |
5 files changed, 1 insertions, 9 deletions
diff --git a/servers/display_server.cpp b/servers/display_server.cpp index 9ceb6909fe..351c03c158 100644 --- a/servers/display_server.cpp +++ b/servers/display_server.cpp @@ -697,10 +697,6 @@ void DisplayServer::release_rendering_thread() { WARN_PRINT("Rendering thread not supported by this display server."); } -void DisplayServer::make_rendering_thread() { - WARN_PRINT("Rendering thread not supported by this display server."); -} - void DisplayServer::swap_buffers() { WARN_PRINT("Swap buffers not supported by this display server."); } diff --git a/servers/display_server.h b/servers/display_server.h index f1a98c2c17..aab51644c0 100644 --- a/servers/display_server.h +++ b/servers/display_server.h @@ -559,7 +559,6 @@ public: virtual void force_process_and_drop_events(); virtual void release_rendering_thread(); - virtual void make_rendering_thread(); virtual void swap_buffers(); virtual void set_native_icon(const String &p_filename); diff --git a/servers/physics_server_2d_wrap_mt.cpp b/servers/physics_server_2d_wrap_mt.cpp index a23bb5e701..f0d31ddb7a 100644 --- a/servers/physics_server_2d_wrap_mt.cpp +++ b/servers/physics_server_2d_wrap_mt.cpp @@ -96,7 +96,6 @@ void PhysicsServer2DWrapMT::end_sync() { void PhysicsServer2DWrapMT::init() { if (create_thread) { - //OS::get_singleton()->release_rendering_thread(); thread.start(_thread_callback, this); while (!step_thread_up.is_set()) { OS::get_singleton()->delay_usec(1000); diff --git a/servers/physics_server_3d_wrap_mt.cpp b/servers/physics_server_3d_wrap_mt.cpp index feb17cad84..9cdd144525 100644 --- a/servers/physics_server_3d_wrap_mt.cpp +++ b/servers/physics_server_3d_wrap_mt.cpp @@ -96,7 +96,6 @@ void PhysicsServer3DWrapMT::end_sync() { void PhysicsServer3DWrapMT::init() { if (create_thread) { - //OS::get_singleton()->release_rendering_thread(); thread.start(_thread_callback, this); while (!step_thread_up) { OS::get_singleton()->delay_usec(1000); diff --git a/servers/rendering/rendering_server_default.cpp b/servers/rendering/rendering_server_default.cpp index 5bf0ab0ba6..268b49ae80 100644 --- a/servers/rendering/rendering_server_default.cpp +++ b/servers/rendering/rendering_server_default.cpp @@ -356,8 +356,7 @@ void RenderingServerDefault::_thread_callback(void *_instance) { void RenderingServerDefault::_thread_loop() { server_thread = Thread::get_caller_id(); - DisplayServer::get_singleton()->make_rendering_thread(); - + DisplayServer::get_singleton()->gl_window_make_current(DisplayServer::MAIN_WINDOW_ID); // Move GL to this thread. _init(); draw_thread_up.set(); |