diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-11-20 11:44:10 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-11-20 11:44:10 +0100 |
commit | 4a52fb828fd9569f1dd9a5dff625e8703219ffa9 (patch) | |
tree | cf1c70811666c7c490cb582f4f351fd89cc69edd | |
parent | d5d83eefd30b42fa5e2ace98bf3990aba575b2ac (diff) | |
parent | 9ce9c959abb993b1c4edf242ff56ed5f568db791 (diff) |
Merge pull request #68884 from dzil123/create_local_rendering_device_null_check_docs
RenderingServer::create_local_rendering_device - Add null check and update docs
-rw-r--r-- | doc/classes/RenderingServer.xml | 4 | ||||
-rw-r--r-- | servers/rendering_server.cpp | 6 |
2 files changed, 9 insertions, 1 deletions
diff --git a/doc/classes/RenderingServer.xml b/doc/classes/RenderingServer.xml index 13e5470a56..2ffa4dc50b 100644 --- a/doc/classes/RenderingServer.xml +++ b/doc/classes/RenderingServer.xml @@ -838,6 +838,8 @@ <method name="create_local_rendering_device" qualifiers="const"> <return type="RenderingDevice" /> <description> + Creates a RenderingDevice that can be used to do draw and compute operations on a separate thread. Cannot draw to the screen nor share data with the global RenderingDevice. + [b]Note:[/b] When using the OpenGL backend or when running in headless mode, this function always returns [code]null[/code]. </description> </method> <method name="decal_create"> @@ -1273,6 +1275,8 @@ <method name="get_rendering_device" qualifiers="const"> <return type="RenderingDevice" /> <description> + Returns the global RenderingDevice. + [b]Note:[/b] When using the OpenGL backend or when running in headless mode, this function always returns [code]null[/code]. </description> </method> <method name="get_rendering_info"> diff --git a/servers/rendering_server.cpp b/servers/rendering_server.cpp index a18a9d7460..6cb1684baf 100644 --- a/servers/rendering_server.cpp +++ b/servers/rendering_server.cpp @@ -1476,7 +1476,11 @@ RenderingDevice *RenderingServer::get_rendering_device() const { } RenderingDevice *RenderingServer::create_local_rendering_device() const { - return RenderingDevice::get_singleton()->create_local_device(); + RenderingDevice *device = RenderingDevice::get_singleton(); + if (!device) { + return nullptr; + } + return device->create_local_device(); } static Vector<Ref<Image>> _get_imgvec(const TypedArray<Image> &p_layers) { |