Skip to content

Commit

Permalink
Fix a crash in ImporterMesh::create_shadow_mesh for non-triangle surf…
Browse files Browse the repository at this point in the history
…aces

optimize_vertex_cache_func assumes the input is a triangle mesh; when an
imported mesh contains points/lines/triangle strips, this code should be
disabled.
  • Loading branch information
zeux committed Sep 11, 2024
1 parent 14a7e0a commit 7d7b43b
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions scene/resources/3d/importer_mesh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -849,7 +849,7 @@ void ImporterMesh::create_shadow_mesh() {
index_wptr[j] = vertex_remap[index];
}

if (SurfaceTool::optimize_vertex_cache_func) {
if (SurfaceTool::optimize_vertex_cache_func && surfaces[i].primitive == Mesh::PRIMITIVE_TRIANGLES) {
SurfaceTool::optimize_vertex_cache_func((unsigned int *)index_wptr, (const unsigned int *)index_wptr, index_count, new_vertices.size());
}

Expand All @@ -871,7 +871,7 @@ void ImporterMesh::create_shadow_mesh() {
index_wptr[k] = vertex_remap[index];
}

if (SurfaceTool::optimize_vertex_cache_func) {
if (SurfaceTool::optimize_vertex_cache_func && surfaces[i].primitive == Mesh::PRIMITIVE_TRIANGLES) {
SurfaceTool::optimize_vertex_cache_func((unsigned int *)index_wptr, (const unsigned int *)index_wptr, index_count, new_vertices.size());
}

Expand Down

0 comments on commit 7d7b43b

Please sign in to comment.