Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
AnimationLimits.h File Reference

Animation-wide UI bounds (duration, stagger interval). More...

Go to the source code of this file.

Namespaces

namespace  PhosphorAnimation
 
namespace  PhosphorAnimation::Limits
 

Variables

constexpr int PhosphorAnimation::Limits::MinAnimationDurationMs = 50
 Minimum animation duration in milliseconds.
 
constexpr int PhosphorAnimation::Limits::MaxAnimationDurationMs = 2000
 Maximum animation duration in milliseconds.
 
constexpr int PhosphorAnimation::Limits::DefaultAnimationDurationMs = 150
 Default animation duration in milliseconds, used as the fallback at startup before settings are loaded from the daemon.
 
constexpr int PhosphorAnimation::Limits::MinAnimationStaggerIntervalMs = 10
 Minimum stagger interval between sequenced animations in milliseconds.
 
constexpr int PhosphorAnimation::Limits::MaxAnimationStaggerIntervalMs = 200
 Maximum stagger interval between sequenced animations in milliseconds.
 
constexpr float PhosphorAnimation::Limits::MaxShaderTimeDeltaSeconds = 0.1f
 Hard ceiling on the per-frame iTimeDelta pushed into shaders, in seconds.
 

Detailed Description

Animation-wide UI bounds (duration, stagger interval).

Source-of-truth min/max values surfaced by the settings UI's duration and stagger-interval sliders. Every animation in the system — global default, per-event override, autotile window-move, overlay/OSD/popup transitions — clamps against these limits, so they MUST live in the animation library and not in any consumer-specific constants header. Previously homed under PhosphorTiles::AutotileDefaults for historical reasons; that placement was a layering mistake (the autotile library has no authority over generic animation policy) and has been corrected.

The values are pure UI policy — no algorithm or runtime path enforces them as clamps. Increasing the upper bound has no effect beyond letting the user pick larger values in the slider.