Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
PhosphorAnimationShaders Namespace Reference

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.
 

Function Documentation

◆ resolveShaderWithDefault()

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).

◆ shaderEffectAppliesToEventPath()

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.