diff options
| author | Daniel Schadt <kingdread@gmx.de> | 2025-11-26 19:35:00 +0100 |
|---|---|---|
| committer | Daniel Schadt <kingdread@gmx.de> | 2025-11-26 19:35:00 +0100 |
| commit | 58536c0aac7187a697ebfa56d8e4dd94b4a59cbe (patch) | |
| tree | 432c00b11bc746b0a7cf29140385ec1331e57342 | |
| parent | 013dc01683c42177e132847475c8b57d1a67fc14 (diff) | |
| download | hittekaart-master.tar.gz hittekaart-master.tar.bz2 hittekaart-master.zip | |
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).
| -rw-r--r-- | hittekaart/src/renderer/heatmap.rs | 5 |
1 files 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<P: Pixel>( 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; } } } |
