(device: &wgpu::Device, label: &str, count: usize, water: bool)
| 1195 | { |
| 1196 | let interval = water_adaptive_readback_interval( |
| 1197 | state.sample_readback_rate, |
| 1198 | water.wave[3], |
| 1199 | !state.queries.is_empty(), |
| 1200 | !state.impacts.is_empty(), |
| 1201 | ); |
| 1202 | self.readback_water_interval.insert(*node, interval); |
| 1203 | let accum = self.readback_water_accum.entry(*node).or_insert(0.0); |
| 1204 | if !all_paused { |
| 1205 | *accum += ctx.delta_seconds.max(0.0); |
| 1206 | } |
| 1207 | let scheduled = interval > 0.0 && *accum + 1.0e-6 >= interval; |
| 1208 | if water.sim[1] > 0 && scheduled { |
| 1209 | self.readback_nodes.push(*node); |
| 1210 | self.readback_offsets.push(water_center_cell_offset(water)); |
| 1211 | self.readback_scheduled_nodes.push(*node); |
| 1212 | } |
| 1213 | } |
| 1214 | self.readback_water_sample_count = self.readback_nodes.len(); |
no test coverage detected