TextureLayer class

A composited layer that maps a backend texture to a rectangle.

Backend textures are images that can be applied (mapped) to an area of the Flutter view. They are created, managed, and updated using a platform-specific texture registry. This is typically done by a plugin that integrates with host platform video player, camera, or OpenGL APIs, or similar image sources.

A texture layer refers to its backend texture using an integer ID. Texture IDs are obtained from the texture registry and are scoped to the Flutter view. Texture IDs may be reused after deregistration, at the discretion of the registry. The use of texture IDs currently unknown to the registry will silently result in a blank rectangle.

Once inserted into the layer tree, texture layers are repainted autonomously as dictated by the backend (e.g. on arrival of a video frame). Such repainting generally does not involve executing Dart code.

Texture layers are always leaves in the layer tree.

See also:

Inheritance

Constructors

TextureLayer({required Rect rect, required int textureId, bool freeze = false, FilterQuality filterQuality = ui.FilterQuality.low})
Creates a texture layer bounded by rect and with backend texture identified by textureId, if freeze is true new texture frames will not be populated to the texture, and use filterQuality to set layer's FilterQuality.

Properties

alwaysNeedsAddToScene bool
Subclasses may override this to true to disable retained rendering.
no setterinherited
attached bool
Whether the layer tree containing this layer is attached to an owner.
no setterinherited
debugCreator Object?
The object responsible for creating this layer.
getter/setter pairinherited
debugDisposed bool
If asserts are enabled, returns whether dispose has been called since the last time any retained resources were created.
no setterinherited
debugHandleCount int
Returns the number of objects holding a LayerHandle to this layer.
no setterinherited
debugSubtreeNeedsAddToScene bool?
Whether this or any descendant layer in the subtree needs addToScene.
no setterinherited
depth int
The depth of this layer in the layer tree.
no setterinherited
engineLayer EngineLayer?
Stores the engine layer created for this layer in order to reuse engine resources across frames for better app performance.
getter/setter pairinherited
filterQuality FilterQuality
The quality of sampling the texture and rendering it on screen.
final
freeze bool
When true the texture will not be updated with new frames.
final
hashCode int
The hash code for this object.
no setterinherited
nextSibling Layer?
This layer's next sibling in the parent layer's child list.
no setterinherited
owner Object?
The owner for this layer (null if unattached).
no setterinherited
parent ContainerLayer?
This layer's parent in the layer tree.
no setterinherited
previousSibling Layer?
This layer's previous sibling in the parent layer's child list.
no setterinherited
rect Rect
Bounding rectangle of this layer.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
subtreeHasCompositionCallbacks bool
Whether the subtree rooted at this layer has any composition callback observers.
no setterinherited
textureId int
The identity of the backend texture.
final

Methods

addCompositionCallback(CompositionCallback callback) VoidCallback
Adds a callback for when the layer tree that this layer is part of gets composited, or when it is detached and will not be rendered again.
inherited
addToScene(SceneBuilder builder) → void
Override this method to upload this layer to the engine.
override
attach(covariant Object owner) → void
Mark this layer as attached to the given owner.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
debugMarkClean() → void
Mark that this layer is in sync with engine.
inherited
describeClipBounds() Rect?
Describes the clip that would be applied to contents of this layer, if any.
inherited
detach() → void
Mark this layer as detached from its owner.
inherited
dispose() → void
Clears any retained resources that this layer holds.
inherited
find<S extends Object>(Offset localPosition) → S?
Search this layer and its subtree for the first annotation of type S under the point described by localPosition.
inherited
findAllAnnotations<S extends Object>(Offset localPosition) AnnotationResult<S>
Search this layer and its subtree for all annotations of type S under the point described by localPosition.
inherited
findAnnotations<S extends Object>(AnnotationResult<S> result, Offset localPosition, {required bool onlyFirst}) bool
Search this layer and its subtree for annotations of type S at the location described by localPosition.
override
markNeedsAddToScene() → void
Mark that this layer has changed and addToScene needs to be called.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
redepthChildren() → void
Adjust the depth of this node's children, if any.
inherited
remove() → void
Removes this layer from its parent layer's child list.
inherited
supportsRasterization() bool
Whether or not this layer, or any child layers, can be rasterized with Scene.toImage or Scene.toImageSync.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A brief description of this object, usually just the runtimeType and the hashCode.
inherited
updateSubtreeNeedsAddToScene() → void
Traverses the layer subtree starting from this layer and determines whether it needs addToScene.
inherited

Operators

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