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:
- TextureRegistry for how to create and manage backend textures on Android.
- TextureRegistry Protocol for how to create and manage backend textures on iOS.
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 bytextureId
, iffreeze
is true new texture frames will not be populated to the texture, and usefilterQuality
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 bylocalPosition
.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 bylocalPosition
.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 bylocalPosition
.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
ui.Scene.toImage or ui.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, int wrapWidth = 65}) → 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