summaryrefslogtreecommitdiff
path: root/scene/3d
diff options
context:
space:
mode:
authorPedro Rodrigues <pedro@onimail.net>2021-02-28 20:09:55 +0000
committerPedro Rodrigues <pedro@onimail.net>2021-02-28 20:09:55 +0000
commit82fed7b6da9882fb2f3cea4bd247eb02f4336b15 (patch)
tree4232fc5b7a1fe3417a4ca8396dfd05ee1baafc1b /scene/3d
parent0e77dc6e924cdf68175f56cb67756bf217e6c4ea (diff)
Fix crash in GIProbe::bake
The problem happened when the passed from_node was null and the GIProbe node had no parent node. Fixes #45978
Diffstat (limited to 'scene/3d')
-rw-r--r--scene/3d/gi_probe.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/scene/3d/gi_probe.cpp b/scene/3d/gi_probe.cpp
index 8a8bfe50b9..43f820e5d4 100644
--- a/scene/3d/gi_probe.cpp
+++ b/scene/3d/gi_probe.cpp
@@ -415,13 +415,16 @@ Vector3i GIProbe::get_estimated_cell_size() const {
void GIProbe::bake(Node *p_from_node, bool p_create_visual_debug) {
static const int subdiv_value[SUBDIV_MAX] = { 6, 7, 8, 9 };
+ p_from_node = p_from_node ? p_from_node : get_parent();
+ ERR_FAIL_NULL(p_from_node);
+
Voxelizer baker;
baker.begin_bake(subdiv_value[subdiv], AABB(-extents, extents * 2.0));
List<PlotMesh> mesh_list;
- _find_meshes(p_from_node ? p_from_node : get_parent(), mesh_list);
+ _find_meshes(p_from_node, mesh_list);
if (bake_begin_function) {
bake_begin_function(mesh_list.size() + 1);