diff options
| author | Juan Linietsky <reduzio@gmail.com> | 2019-07-29 15:29:43 -0300 |
|---|---|---|
| committer | Juan Linietsky <reduzio@gmail.com> | 2020-02-11 11:53:29 +0100 |
| commit | 6ecedd1e6ca7d8b10b13a3dab19074fd51b17bcf (patch) | |
| tree | 8b66186e969d81834ed5a24ec1b91fd3bc8d73ee /servers/visual/rasterizer_rd/rasterizer_storage_rd.cpp | |
| parent | c613ead5fa2361296cf8d9a80d4648492ff4e16f (diff) | |
| download | redot-engine-6ecedd1e6ca7d8b10b13a3dab19074fd51b17bcf.tar.gz | |
Add a system to properly update materials if the uniform set is gone (likely deleted texture)
Diffstat (limited to 'servers/visual/rasterizer_rd/rasterizer_storage_rd.cpp')
| -rw-r--r-- | servers/visual/rasterizer_rd/rasterizer_storage_rd.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/servers/visual/rasterizer_rd/rasterizer_storage_rd.cpp b/servers/visual/rasterizer_rd/rasterizer_storage_rd.cpp index fef3418d53..07cc6d6989 100644 --- a/servers/visual/rasterizer_rd/rasterizer_storage_rd.cpp +++ b/servers/visual/rasterizer_rd/rasterizer_storage_rd.cpp @@ -1631,6 +1631,16 @@ void RasterizerStorageRD::MaterialData::update_textures(const Map<StringName, Va } } +void RasterizerStorageRD::material_force_update_textures(RID p_material, ShaderType p_shader_type) { + Material *material = material_owner.getornull(p_material); + if (material->shader_type != p_shader_type) { + return; + } + if (material->data) { + material->data->update_parameters(material->params, false, true); + } +} + void RasterizerStorageRD::_update_queued_materials() { Material *material = material_update_list; while (material) { |
