summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordzil123 <5725958+dzil123@users.noreply.github.com>2022-11-19 03:22:27 -0800
committerdzil123 <5725958+dzil123@users.noreply.github.com>2022-11-19 16:31:05 -0800
commit9ce9c959abb993b1c4edf242ff56ed5f568db791 (patch)
tree063a288432f6787d55dd47c76ae2996913ce26a1
parent84c404f6bcce9ba112118d77afd6bd70a92774d1 (diff)
RenderingServer::create_local_rendering_device null check and docs
Co-authored-by: Clay John <claynjohn@gmail.com>
-rw-r--r--doc/classes/RenderingServer.xml4
-rw-r--r--servers/rendering_server.cpp6
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) {