EffectSpec

interface EffectSpec(source)

A declaration of an effect: pure data describing intent rather than realization.

Contains no platform types and no rendering logic. An EffectResolver turns one spec into a platform object, once per pipeline.

Implementations must carry a stable id, which is what names the effect in a plan and in the canonical pipeline order.

Implementations must also compare by value, which a data class or @Poko gives for free. filmstrip decides whether a composition changed, and whether a cached thumbnail is still good, by comparing specs. An implementation left on identity equality reports every rebuilt edit as different, so setting an equal composition rebuilds the graph and every thumbnail cache key changes.

Properties

Link copied to clipboard

Whether this effect runs ahead of the overlays in EffectStage.Composite.

Link copied to clipboard
abstract val id: String

Stable identifier, used for pipeline ordering and diagnostics.

Link copied to clipboard
open val isInert: Boolean

Whether this effect leaves every pixel as it was, as configured.

Link copied to clipboard

Whether this effect needs SDR frames to run on.

Link copied to clipboard
open val scope: EffectScope

Which scopes this effect may be declared in.

Link copied to clipboard
open val stage: EffectStage

Where in the pipeline this effect runs.