From 58536c0aac7187a697ebfa56d8e4dd94b4a59cbe Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Wed, 26 Nov 2025 19:35:00 +0100 Subject: make merge_heat_counter more efficient Accessing the underlying buffers directly and iterating over them is more efficient (and gives the compiler more options to optimize) than the dance with get_pixel_mut. On my local tests with 119 tracks, this shaves off ~30 seconds (from 90 seconds down to 60 seconds). --- hittekaart/src/renderer/heatmap.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hittekaart/src/renderer/heatmap.rs b/hittekaart/src/renderer/heatmap.rs index 187c8f3..38a1543 100644 --- a/hittekaart/src/renderer/heatmap.rs +++ b/hittekaart/src/renderer/heatmap.rs @@ -118,9 +118,8 @@ fn render_line( fn merge_heat_counter(base: &mut HeatCounter, overlay: &HeatCounter) { for (tx, ty, source) in overlay.enumerate_tiles() { let target = base.tile_mut(tx, ty); - for (x, y, source) in source.enumerate_pixels() { - let target = target.get_pixel_mut(x, y); - target[0] += source[0]; + for (t, s) in target.iter_mut().zip(source.iter()) { + *t += *s; } } } -- cgit v1.2.3