Namespaces | |
| namespace | AnimationShaderContract |
| Cross-runtime named-uniform contract for animation/transition shaders. | |
Classes | |
| struct | AnimationShaderEffect |
| Metadata for a single animation shader effect (transition). More... | |
| class | AnimationShaderRegistry |
| Registry of available animation shader transition effects. More... | |
| class | ShaderProfile |
| Per-event shader effect selection and configuration. More... | |
| class | ShaderProfileTree |
| Hierarchical ShaderProfile storage with walk-up inheritance. More... | |
Functions | |
| PHOSPHORANIMATION_EXPORT bool | shaderEffectAppliesToEventPath (const AnimationShaderEffect &effect, const QString &path) |
True iff effect may meaningfully run on event path. | |
| PHOSPHORANIMATION_EXPORT ShaderProfile | resolveShaderWithDefault (const ShaderProfileTree &tree, const QString &path) |
Resolve path against tree, applying the built-in per-event default shader (ProfilePaths::defaultShaderEffectIdForPath, e.g. | |
| PHOSPHORANIMATION_EXPORT ShaderProfile PhosphorAnimationShaders::resolveShaderWithDefault | ( | const ShaderProfileTree & | tree, |
| const QString & | path | ||
| ) |
Resolve path against tree, applying the built-in per-event default shader (ProfilePaths::defaultShaderEffectIdForPath, e.g.
"window-morph" for window-move events) when the path is TRULY UNSET — i.e. neither it nor any ancestor carries an override. An explicit "None" (an engaged-empty override) IS an override, so it is respected and the default is NOT applied.
SSOT for "what shader does this event use", shared by the kwin-effect resolution and the settings UI so the built-in default both plays at runtime and shows as the current value in settings — without persisting the default into the user's config (it's computed, not stored).
| PHOSPHORANIMATION_EXPORT bool PhosphorAnimationShaders::shaderEffectAppliesToEventPath | ( | const AnimationShaderEffect & | effect, |
| const QString & | path | ||
| ) |
True iff effect may meaningfully run on event path.
An effect with an empty appliesTo is universal and always returns true. Otherwise the predicate maps path to its event class via PhosphorAnimation::ProfilePaths::eventClassForPath and checks membership. A path with no determinable class (a mixed ancestor like window, or a non-window/overlay path) also returns true — the predicate only reports false when it can PROVE a mismatch, so it never over-restricts a row whose class is ambiguous.
This is the (effect × path) analogue of PlasmaZones::eventPathSupportsShaderLeg(path), which gates whether a path can run ANY shader. Both the settings picker (to dim incompatible effects) and any future runtime verification consult this one predicate so the policy has a single source of truth.