Browse Source

Merge pull request #68884 from dzil123/create_local_rendering_device_null_check_docs

RenderingServer::create_local_rendering_device - Add null check and update docs
Rémi Verschelde 2 years ago
parent
commit
4a52fb828f
2 changed files with 9 additions and 1 deletions
  1. 4 0
      doc/classes/RenderingServer.xml
  2. 5 1
      servers/rendering_server.cpp

+ 4 - 0
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">

+ 5 - 1
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) {