diff options
Diffstat (limited to 'servers/rendering/rendering_server_default.h')
-rw-r--r-- | servers/rendering/rendering_server_default.h | 44 |
1 files changed, 31 insertions, 13 deletions
diff --git a/servers/rendering/rendering_server_default.h b/servers/rendering/rendering_server_default.h index 797fe73ba0..e9b40eb082 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 @@ -210,9 +212,13 @@ public: FUNC2(texture_set_path, RID, const String &) FUNC1RC(String, texture_get_path, RID) + + FUNC1RC(Image::Format, texture_get_format, RID) + FUNC1(texture_debug_usage, List<TextureInfo> *) FUNC2(texture_set_force_redraw_if_visible, RID, bool) + FUNCRIDTEX2(texture_rd, const RID &, const RS::TextureLayeredType) FUNC2RC(RID, texture_get_rd_texture, RID, bool) FUNC2RC(uint64_t, texture_get_native_handle, RID, bool) @@ -946,9 +952,26 @@ public: #undef server_name #undef ServerName + /* STATUS INFORMATION */ +#define ServerName RendererUtilities +#define server_name RSG::utilities + FUNC0RC(String, get_video_adapter_name) + FUNC0RC(String, get_video_adapter_vendor) + FUNC0RC(String, get_video_adapter_api_version) +#undef server_name +#undef ServerName #undef WRITE_ACTION #undef SYNC_DEBUG + virtual uint64_t get_rendering_info(RenderingInfo p_info) override; + virtual RenderingDevice::DeviceType get_video_adapter_type() const override; + + virtual void set_frame_profiling_enabled(bool p_enable) override; + virtual Vector<FrameProfileArea> get_frame_profile() override; + virtual uint64_t get_frame_profile_frame() override; + + virtual RID get_test_cube() override; + /* FREE */ virtual void free(RID p_rid) override { @@ -970,19 +993,14 @@ public: virtual void init() override; virtual void finish() override; - /* STATUS INFORMATION */ - - virtual uint64_t get_rendering_info(RenderingInfo p_info) override; - virtual String get_video_adapter_name() const override; - virtual String get_video_adapter_vendor() const override; - virtual RenderingDevice::DeviceType get_video_adapter_type() const override; - virtual String get_video_adapter_api_version() const override; - - virtual void set_frame_profiling_enabled(bool p_enable) override; - virtual Vector<FrameProfileArea> get_frame_profile() override; - virtual uint64_t get_frame_profile_frame() override; - - virtual RID get_test_cube() 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 */ |