diff options
| -rw-r--r-- | drivers/gles3/storage/material_storage.cpp | 3 | ||||
| -rw-r--r-- | servers/rendering/renderer_rd/storage_rd/material_storage.cpp | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gles3/storage/material_storage.cpp b/drivers/gles3/storage/material_storage.cpp index 1aaf840b30..41c23fc3ec 100644 --- a/drivers/gles3/storage/material_storage.cpp +++ b/drivers/gles3/storage/material_storage.cpp @@ -874,7 +874,8 @@ void MaterialData::update_textures(const HashMap<StringName, Variant> &p_paramet if (V->value.is_array()) { Array array = (Array)V->value; if (uniform_array_size > 0) { - for (int j = 0; j < array.size(); j++) { + int size = MIN(uniform_array_size, array.size()); + for (int j = 0; j < size; j++) { textures.push_back(array[j]); } } else { diff --git a/servers/rendering/renderer_rd/storage_rd/material_storage.cpp b/servers/rendering/renderer_rd/storage_rd/material_storage.cpp index 13b00be1c4..8b74ebfacd 100644 --- a/servers/rendering/renderer_rd/storage_rd/material_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/material_storage.cpp @@ -807,7 +807,8 @@ void MaterialStorage::MaterialData::update_textures(const HashMap<StringName, Va if (V->value.is_array()) { Array array = (Array)V->value; if (uniform_array_size > 0) { - for (int j = 0; j < array.size(); j++) { + int size = MIN(uniform_array_size, array.size()); + for (int j = 0; j < size; j++) { textures.push_back(array[j]); } } else { |
