solved particle memory leak, fixes #15591
This commit is contained in:
parent
920715b97d
commit
5398363572
1 changed files with 17 additions and 0 deletions
|
@ -1597,4 +1597,21 @@ ParticlesMaterial::ParticlesMaterial() :
|
|||
}
|
||||
|
||||
ParticlesMaterial::~ParticlesMaterial() {
|
||||
|
||||
if (material_mutex)
|
||||
material_mutex->lock();
|
||||
|
||||
if (shader_map.has(current_key)) {
|
||||
shader_map[current_key].users--;
|
||||
if (shader_map[current_key].users == 0) {
|
||||
//deallocate shader, as it's no longer in use
|
||||
VS::get_singleton()->free(shader_map[current_key].shader);
|
||||
shader_map.erase(current_key);
|
||||
}
|
||||
|
||||
VS::get_singleton()->material_set_shader(_get_material(), RID());
|
||||
}
|
||||
|
||||
if (material_mutex)
|
||||
material_mutex->unlock();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue