1
0
mirror of https://github.com/godotengine/godot.git synced 2025-12-06 17:25:19 +00:00

Conditionally free GI and FOG resources, they may not have been created

This commit is contained in:
Bastiaan Olij
2023-05-22 12:59:34 +10:00
parent 809a982162
commit 57f343ab21
2 changed files with 48 additions and 16 deletions

View File

@@ -312,11 +312,21 @@ ALBEDO = vec3(1.0);
void Fog::free_fog_shader() {
MaterialStorage *material_storage = MaterialStorage::get_singleton();
volumetric_fog.process_shader.version_free(volumetric_fog.process_shader_version);
RD::get_singleton()->free(volumetric_fog.volume_ubo);
RD::get_singleton()->free(volumetric_fog.params_ubo);
material_storage->shader_free(volumetric_fog.default_shader);
material_storage->material_free(volumetric_fog.default_material);
if (volumetric_fog.process_shader_version.is_valid()) {
volumetric_fog.process_shader.version_free(volumetric_fog.process_shader_version);
}
if (volumetric_fog.volume_ubo.is_valid()) {
RD::get_singleton()->free(volumetric_fog.volume_ubo);
}
if (volumetric_fog.params_ubo.is_valid()) {
RD::get_singleton()->free(volumetric_fog.params_ubo);
}
if (volumetric_fog.default_shader.is_valid()) {
material_storage->shader_free(volumetric_fog.default_shader);
}
if (volumetric_fog.default_material.is_valid()) {
material_storage->material_free(volumetric_fog.default_material);
}
}
void Fog::FogShaderData::set_code(const String &p_code) {