ShaderNetworkPainter class

A CustomPainter that delegates all rendering to a FragmentShader.

Every frame the painter writes particle positions and colours into the shader's uniform buffer, then issues a single Canvas.drawRect covering the full widget area. The GPU resolves every pixel in parallel.

Inheritance

Constructors

ShaderNetworkPainter({required FragmentShader shader, required List<Particle> particles, required Offset? touchPoint, required double lineDistance, required Color particleColor, required Color lineColor, required Color touchColor, required bool touchActivation, required double lineWidth, required bool drawNetwork, required double time, double glowIntensity = 0.3})
const

Properties

drawNetwork bool
When false, line rendering is skipped (lineDistance set to 0 in shader).
final
glowIntensity double
Intensity of the radial glow surrounding each particle (0–1).
final
hashCode int
The hash code for this object.
no setterinherited
lineColor Color
Colour for connection lines.
final
lineDistance double
Maximum distance for drawing connection lines.
final
lineWidth double
Width of connection / touch lines (pixels).
final
particleColor Color
Base colour for particles.
final
particles List<Particle>
Snapshot of particle state for this frame.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
semanticsBuilder SemanticsBuilderCallback?
Returns a function that builds semantic information for the picture drawn by this painter.
no setterinherited
shader FragmentShader
The compiled + instantiated fragment shader (one per paint, no recreation).
final
time double
Seconds elapsed since animation start (drives pulse & ripple timings).
final
touchActivation bool
Whether touch interaction effects are enabled.
final
touchColor Color
Colour for touch lines and the ripple ring.
final
touchPoint Offset?
Current touch / cursor position, or Offset.infinite when inactive.
final

Methods

addListener(VoidCallback listener) → void
Register a closure to be notified when it is time to repaint.
inherited
hitTest(Offset position) bool?
Called whenever a hit test is being performed on an object that is using this custom paint delegate.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
paint(Canvas canvas, Size size) → void
Called whenever the object needs to paint. The given Canvas has its coordinate space configured such that the origin is at the top left of the box. The area of the box is the size of the size argument.
override
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that the object notifies when it is time to repaint.
inherited
shouldRebuildSemantics(covariant CustomPainter oldDelegate) bool
Called whenever a new instance of the custom painter delegate class is provided to the RenderCustomPaint object, or any time that a new CustomPaint object is created with a new instance of the custom painter delegate class (which amounts to the same thing, because the latter is implemented in terms of the former).
inherited
shouldRepaint(covariant ShaderNetworkPainter old) bool
Called whenever a new instance of the custom painter delegate class is provided to the RenderCustomPaint object, or any time that a new CustomPaint object is created with a new instance of the custom painter delegate class (which amounts to the same thing, because the latter is implemented in terms of the former).
override
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited