GlassBackdropScope class
A scope widget that enables GPU blur-sharing across all glass layers in its subtree.
Wrap your screen — or the portion that contains multiple glass surfaces — in GlassBackdropScope to allow those surfaces to share a single GPU framebuffer capture for their blur step. Without this wrapper each AdaptiveLiquidGlassLayer (and therefore every glass widget) captures its own backdrop independently. With it all layers inside the scope share one capture on Impeller, roughly halving GPU blit cost when multiple glass surfaces are visible simultaneously (e.g. GlassAppBar + GlassBottomBar on the same screen).
On Skia and Web the lightweight shader path is used instead of AdaptiveLiquidGlassLayer, so this widget has no effect on those backends.
Usage
GlassBackdropScope(
child: Scaffold(
appBar: GlassAppBar(...),
body: ...,
bottomNavigationBar: GlassBottomBar(...),
),
)
Place GlassBackdropScope as high in the tree as practical — typically wrapping your Scaffold — so all glass surfaces on the screen are descendants.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatelessWidget
- GlassBackdropScope
Constructors
- GlassBackdropScope({required Widget child, Key? key})
-
Creates a GlassBackdropScope.
const
Properties
- child → Widget
-
The subtree in which glass layers will share a backdrop capture.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
override
-
createElement(
) → StatelessElement -
Creates a StatelessElement to manage this widget's location in the tree.
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
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
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 short, textual description of this widget.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited