tick method

void tick(
  1. double dt
)

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();
}