ShaderEffect class
Effect that applies an animated fragment shader to a target. See Writing and using fragment shaders for information on how to include shaders in your app.
shader is the FragmentShader to apply to the target. If null
no effect
will be applied.
overflow defines a buffer space around the target to draw the shader. This is useful for effects that draw outside of the target bounds, such as blurs. Defaults to EdgeInsets.zero.
layer allows you to layer the shader above, below, or completely replace the target visually. Defaults to ShaderLayer.replace.
update is an optional callback that allows you to update the shader. It
is called whenever the animation value changes. It accepts a
ShaderUpdateDetails object. It can update uniforms directly via
setFloat
or setImageSampler
, by using ShaderUpdateDetails.updateUniforms.
If update is not specified, the shader will be updated automatically based on the "standardized" uniforms defined in ShaderUpdateDetails.updateUniforms.
The update callback may return an EdgeInsets to define the overflow, or
null
to use the overflow value.
Constructors
- ShaderEffect({Duration? delay, Duration? duration, Curve? curve, FragmentShader? shader, EdgeInsets? overflow, ShaderLayer? layer, ShaderUpdateCallback? update})
-
const
Properties
- begin → double?
-
The begin value for the effect. If null, effects should use a reasonable
default value when appropriate.
finalinherited
- curve → Curve?
-
The specified easing curve for the effect. If null, will inherit the curve from the
previous effect, or use Animate.defaultCurve if this is the first effect.
finalinherited
- delay → Duration?
-
The specified delay for the effect. If null, will inherit the delay from the
previous effect, or use Duration.zero if this is the first effect.
finalinherited
- duration → Duration?
-
The specified duration for the effect. If null, will inherit the duration from the
previous effect, or use Animate.defaultDuration if this is the first effect.
finalinherited
- end → double?
-
The end value for the effect. If null, effects should use a reasonable
default value when appropriate.
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- layer → ShaderLayer
-
final
- overflow → EdgeInsets?
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- shader → FragmentShader?
-
final
- update → ShaderUpdateCallback?
-
final
Methods
-
build(
BuildContext context, Widget child, AnimationController controller, EffectEntry entry) → Widget -
Builds the widgets that implement the effect on the target
child
, based on the provided AnimationController and EffectEntry.override -
buildAnimation(
AnimationController controller, EffectEntry entry) → Animation< double> -
Returns an animation based on the controller, entry, and begin/end values.
inherited
-
getBeginRatio(
AnimationController controller, EffectEntry entry) → double -
Returns a ratio corresponding to the beginning of the specified entry.
inherited
-
getEndRatio(
AnimationController controller, EffectEntry entry) → double -
Returns a ratio corresponding to the end of the specified entry.
inherited
-
getOptimizedBuilder<
U> ({required ValueListenable< U> animation, Widget? child, required TransitionBuilder builder}) → AnimatedBuilder -
Returns an optimized AnimatedBuilder that doesn't
rebuild if the value hasn't changed.
inherited
-
getToggleBuilder(
{required ValueListenable< double> animation, required Widget child, required bool toggle(), required ToggleEffectBuilder builder}) → AnimatedBuilder -
Returns an AnimatedBuilder that rebuilds when the
boolean value returned by the
toggle
function changes.inherited -
isAnimationActive(
Animation animation) → bool -
Check if the animation is currently running / active.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited