6#include <PhosphorAnimation/phosphoranimation_export.h>
101 bool isUserEffect =
false;
118 bool isMultipass =
false;
123 bool useWallpaper =
false;
127 bool bufferFeedback =
false;
132 qreal bufferScale = 1.0;
153 bool useDepthBuffer =
false;
164 bool useAudio =
false;
206 int geometryGridSubdivisions = 0;
216 static_assert(kMinBufferScale > 0.0 && kMinBufferScale < kMaxBufferScale,
217 "kMinBufferScale must be positive and strictly less than kMaxBufferScale");
225 static constexpr int kMaxGeometryGridSubdivisions = 128;
281 return path == other.
path && wrap == other.
wrap;
285 return !(*
this == other);
292 return !
id.isEmpty() && !fragmentShaderPath.isEmpty();
301 return !(*
this == other);
Q_DECLARE_TYPEINFO(PhosphorAnimationShaders::AnimationShaderEffect::TextureSlot, Q_RELOCATABLE_TYPE)
Definition AnimationShaderContract.h:10
PHOSPHORANIMATION_EXPORT bool shaderEffectAppliesToEventPath(const AnimationShaderEffect &effect, const QString &path)
True iff effect may meaningfully run on event path.
PHOSPHORANIMATION_EXPORT bool shaderEffectIsCompositorOnly(const AnimationShaderEffect &effect)
True iff effect can ONLY execute on the compositor (kwin-effect) runtime and never on the daemon's ov...
constexpr double kMaxBufferScale
Definition CustomParamsKey.h:20
constexpr double kMinBufferScale
Lower / upper bounds on a multipass bufferScale (FBO downscale factor).
Definition CustomParamsKey.h:19
Declared shader inputs beyond the standard set (iTime, iFrame, etc.).
Definition AnimationShaderEffect.h:240
QVariant maxValue
JSON/QML key: max.
Definition AnimationShaderEffect.h:248
QString name
Definition AnimationShaderEffect.h:242
QString description
Optional one-line tooltip for the settings UI.
Definition AnimationShaderEffect.h:244
QVariant minValue
JSON/QML key: min.
Definition AnimationShaderEffect.h:247
QVariant stepValue
Optional slider step; JSON/QML key: step. QML falls back to (max-min)/200.
Definition AnimationShaderEffect.h:249
QString group
Optional accordion group name for the settings UI.
Definition AnimationShaderEffect.h:245
QVariant defaultValue
JSON/QML key: default.
Definition AnimationShaderEffect.h:246
QString id
Definition AnimationShaderEffect.h:241
QString type
"float", "int", "bool", "color"
Definition AnimationShaderEffect.h:243
User texture slot.
Definition AnimationShaderEffect.h:274
QString wrap
"clamp" / "repeat" / "mirror"; empty = runtime default. Other values are rejected by fromJson.
Definition AnimationShaderEffect.h:277
bool operator!=(const TextureSlot &other) const
Definition AnimationShaderEffect.h:283
QString path
Filename relative to the effect's sourceDir.
Definition AnimationShaderEffect.h:275
bool operator==(const TextureSlot &other) const
Definition AnimationShaderEffect.h:279
Metadata for a single animation shader effect (transition).
Definition AnimationShaderEffect.h:46
QString version
Semantic version of this effect pack.
Definition AnimationShaderEffect.h:60
FboExtentKind
How wide the shader effect's render target is — relative to its anchor (default), or filling the surf...
Definition AnimationShaderEffect.h:188
QString fragmentShaderPath
Path to the fragment shader (relative to the effect dir).
Definition AnimationShaderEffect.h:91
QString author
Author attribution.
Definition AnimationShaderEffect.h:57
static AnimationShaderEffect fromJson(const QJsonObject &obj)
QString category
Category for settings-UI grouping (e.g. "Fade", "Geometric", "Glitch").
Definition AnimationShaderEffect.h:63
QString bufferFilter
Default filter mode for all buffer samplers.
Definition AnimationShaderEffect.h:145
QList< TextureSlot > textures
Definition AnimationShaderEffect.h:288
QStringList bufferShaderPaths
Buffer-pass shader paths (relative to effect dir).
Definition AnimationShaderEffect.h:111
QJsonObject toJson() const
QString id
Stable identifier — lookup key in the registry.
Definition AnimationShaderEffect.h:48
bool operator!=(const AnimationShaderEffect &other) const
Definition AnimationShaderEffect.h:299
bool operator==(const AnimationShaderEffect &other) const
QString sourceDir
Resolved absolute directory containing this effect's assets.
Definition AnimationShaderEffect.h:98
QString name
Human-readable display name (localizable by the consumer).
Definition AnimationShaderEffect.h:51
QList< ParameterInfo > parameters
Definition AnimationShaderEffect.h:251
QString bufferWrap
Default wrap mode for all buffer samplers.
Definition AnimationShaderEffect.h:137
QStringList bufferWraps
Per-buffer wrap-mode overrides; index aligns with bufferShaderPaths.
Definition AnimationShaderEffect.h:141
QString description
One-line description for settings UI tooltips.
Definition AnimationShaderEffect.h:54
QStringList bufferFilters
Per-buffer filter-mode overrides; index aligns with bufferShaderPaths.
Definition AnimationShaderEffect.h:149
bool isValid() const
Definition AnimationShaderEffect.h:290
QString previewPath
Preview image path (relative to the effect dir). For settings UI.
Definition AnimationShaderEffect.h:104
QString vertexShaderPath
Path to the vertex shader (relative to the effect dir).
Definition AnimationShaderEffect.h:95
QStringList appliesTo
Event-class tokens this effect is meaningful on.
Definition AnimationShaderEffect.h:86