diff options
| author | Rémi Verschelde <remi@verschelde.fr> | 2022-05-17 12:13:37 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-17 12:13:37 +0200 |
| commit | d64fc0c11442b17a2d81edb3a3042d9a34b6621e (patch) | |
| tree | b238f39a30311435a80d730c8bc099e25e9abe2a /drivers/gles3/storage/mesh_storage.cpp | |
| parent | 4379383ccd7828a94bdc0e4c6692826f2e4ec2ec (diff) | |
| parent | 9b61c855ef00e14925cfdf8a5d61f854c51d92f4 (diff) | |
Merge pull request #61101 from clayjohn/GLES3-3D
Diffstat (limited to 'drivers/gles3/storage/mesh_storage.cpp')
| -rw-r--r-- | drivers/gles3/storage/mesh_storage.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gles3/storage/mesh_storage.cpp b/drivers/gles3/storage/mesh_storage.cpp index e754d6150a..5739a63cac 100644 --- a/drivers/gles3/storage/mesh_storage.cpp +++ b/drivers/gles3/storage/mesh_storage.cpp @@ -570,24 +570,29 @@ void MeshStorage::mesh_clear(RID p_mesh) { if (s.vertex_buffer != 0) { glDeleteBuffers(1, &s.vertex_buffer); + s.vertex_buffer = 0; } if (s.version_count != 0) { for (uint32_t j = 0; j < s.version_count; j++) { glDeleteVertexArrays(1, &s.versions[j].vertex_array); + s.versions[j].vertex_array = 0; } } if (s.attribute_buffer != 0) { glDeleteBuffers(1, &s.attribute_buffer); + s.attribute_buffer = 0; } if (s.skin_buffer != 0) { glDeleteBuffers(1, &s.skin_buffer); + s.skin_buffer = 0; } if (s.index_buffer != 0) { glDeleteBuffers(1, &s.index_buffer); + s.index_buffer = 0; } memdelete(mesh->surfaces[i]); } @@ -804,17 +809,20 @@ void MeshStorage::_mesh_instance_clear(MeshInstance *mi) { if (mi->surfaces[i].version_count != 0) { for (uint32_t j = 0; j < mi->surfaces[i].version_count; j++) { glDeleteVertexArrays(1, &mi->surfaces[i].versions[j].vertex_array); + mi->surfaces[i].versions[j].vertex_array = 0; } memfree(mi->surfaces[i].versions); } if (mi->surfaces[i].vertex_buffer != 0) { glDeleteBuffers(1, &mi->surfaces[i].vertex_buffer); + mi->surfaces[i].vertex_buffer = 0; } } mi->surfaces.clear(); if (mi->blend_weights_buffer != 0) { glDeleteBuffers(1, &mi->blend_weights_buffer); + mi->blend_weights_buffer = 0; } mi->blend_weights.clear(); mi->weights_dirty = false; |