DicomShaderPainter class

A performance-critical CustomPainter that offloads medical rendering to the GPU.

DicomShaderPainter acts as the bridge between Flutter's Canvas and the custom GLSL Fragment Shader. It handles:

  1. Passing current Window Center/Width to the shader.
  2. Binding the 16-bit packed texture.
  3. Passing Hounsfield Unit (HU) transformation constants.

By performing these calculations on the GPU, we ensure clinical precision and smooth 60fps interactivity even on mobile devices.

Inheritance

Constructors

DicomShaderPainter({required DicomFrameResult frameResult, required double windowCenter, required double windowWidth, required FragmentShader shader, required Image rawTexture})
Creates a DicomShaderPainter.

Properties

frameResult DicomFrameResult
The processing result containing metadata and pixel data pointers.
final
hashCode int
The hash code for this object.
no setterinherited
rawTexture Image
The raw 16-bit pixel data packed into an RGBA ui.Image sampler.
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 GLSL shader program instance.
final
windowCenter double
The user-defined or default Window Center for contrast mapping.
final
windowWidth double
The user-defined or default Window Width for contrast mapping.
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
Performs the actual drawing operation using the fragment shader.
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 DicomShaderPainter oldDelegate) bool
Determines if the painter needs to rebuild.
override
toString() String
A string representation of this object.
inherited

Operators

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