diff options
Diffstat (limited to 'servers/rendering/rendering_server_default.h')
-rw-r--r-- | servers/rendering/rendering_server_default.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/servers/rendering/rendering_server_default.h b/servers/rendering/rendering_server_default.h index c79d3a64cf..9ad2175332 100644 --- a/servers/rendering/rendering_server_default.h +++ b/servers/rendering/rendering_server_default.h @@ -97,6 +97,8 @@ class RenderingServerDefault : public RenderingServer { void _free(RID p_rid); + void _call_on_render_thread(const Callable &p_callable); + public: //if editor is redrawing when it shouldn't, enable this and put a breakpoint in _changes_changed() //#define DEBUG_CHANGES @@ -627,6 +629,7 @@ public: FUNC2(viewport_remove_canvas, RID, RID) FUNC3(viewport_set_canvas_transform, RID, RID, const Transform2D &) FUNC2(viewport_set_transparent_background, RID, bool) + FUNC2(viewport_set_use_hdr_2d, RID, bool) FUNC2(viewport_set_snap_2d_transforms_to_pixel, RID, bool) FUNC2(viewport_set_snap_2d_vertices_to_pixel, RID, bool) @@ -991,6 +994,15 @@ public: virtual void init() override; virtual void finish() override; + virtual void call_on_render_thread(const Callable &p_callable) override { + if (Thread::get_caller_id() == server_thread) { + command_queue.flush_if_pending(); + _call_on_render_thread(p_callable); + } else { + command_queue.push(this, &RenderingServerDefault::_call_on_render_thread, p_callable); + } + } + /* TESTING */ virtual double get_frame_setup_time_cpu() const override; |