diff options
Diffstat (limited to 'servers/rendering/rendering_device.cpp')
-rw-r--r-- | servers/rendering/rendering_device.cpp | 20 |
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); } |