tick method
Update animation frame.
Implementation
void tick(double dt) {
_time += dt;
// Slow zoom drift (meditative auto-exploration)
if (_config.zoomDriftSpeed > 0) {
_zoom *= 1.0 + _config.zoomDriftSpeed * dt * 0.01;
// Reset zoom to prevent float precision issues on mobile
if (_zoom > 1e5) _zoom = _config.defaultZoom;
}
// Throttle repaints: GPU shaders run at 60fps fine,
// but CPU fallback (web without shader support) needs throttling
// to ~8fps to stay responsive — each frame is a full Mandelbrot compute.
if (useFallback) {
_timeSinceLastNotify += dt;
if (_timeSinceLastNotify < 0.125) return; // ~8fps
_timeSinceLastNotify = 0.0;
}
notifyListeners();
}