summaryrefslogtreecommitdiffstats
path: root/servers/rendering/rendering_device.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'servers/rendering/rendering_device.cpp')
-rw-r--r--servers/rendering/rendering_device.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/servers/rendering/rendering_device.cpp b/servers/rendering/rendering_device.cpp
index f0f267c246..e322bba768 100644
--- a/servers/rendering/rendering_device.cpp
+++ b/servers/rendering/rendering_device.cpp
@@ -138,17 +138,17 @@ RenderingDevice::ShaderSPIRVGetCacheKeyFunction RenderingDevice::get_spirv_cache
/***************************/
void RenderingDevice::_add_dependency(RID p_id, RID p_depends_on) {
- if (!dependency_map.has(p_depends_on)) {
- dependency_map[p_depends_on] = HashSet<RID>();
+ HashSet<RID> *set = dependency_map.getptr(p_depends_on);
+ if (set == nullptr) {
+ set = &dependency_map.insert(p_depends_on, HashSet<RID>())->value;
}
+ set->insert(p_id);
- dependency_map[p_depends_on].insert(p_id);
-
- if (!reverse_dependency_map.has(p_id)) {
- reverse_dependency_map[p_id] = HashSet<RID>();
+ set = reverse_dependency_map.getptr(p_id);
+ if (set == nullptr) {
+ set = &reverse_dependency_map.insert(p_id, HashSet<RID>())->value;
}
-
- reverse_dependency_map[p_id].insert(p_depends_on);
+ set->insert(p_depends_on);
}
void RenderingDevice::_free_dependencies(RID p_id) {
@@ -1641,8 +1641,8 @@ Vector<uint8_t> RenderingDevice::texture_get_data(RID p_texture, uint32_t p_laye
copy_region.texture_region_size.z = d;
command_buffer_texture_copy_regions_vector.push_back(copy_region);
- w = (w >> 1);
- h = (h >> 1);
+ w = MAX(1u, w >> 1);
+ h = MAX(1u, h >> 1);
d = MAX(1u, d >> 1);
}