struct ImageLayerEquivalence

Defined at line 29 of file ../../src/ui/scenic/lib/display/internal/layer_equivalence.h

Variant sub-type of `LayerEquivalence`.

Represents the subset of an Image Layer's configuration that defines its equivalence class for

the `fuchsia.hardware.display.Coordinator/CheckConfig()` method. This includes properties like

dimensions, format, transformation, and alpha, but excludes fields like the specific `ImageId`,

which don't affect hardware compatibility for a given frame.

TODO(https://fxbug.dev/446183922): it seems like the image's pixel format must be a meaningful

datum to take into account, but I can't find any documentation/code in the display stack to

support this theory.

Public Members

Rectangle display_destination
Rectangle image_source
RotateFlip image_source_transformation
Extent2 image_dimensions
uint32_t image_tiling_type
BlendMode blend_mode
AlphaRange alpha_range

Public Methods

AlphaRange MakeAlphaRange (float alpha)

Defined at line 38 of file ../../src/ui/scenic/lib/display/internal/layer_equivalence.h

bool operator== (const ImageLayerEquivalence & other)

Defined at line 60 of file ../../src/ui/scenic/lib/display/internal/layer_equivalence.h

Enumerations

enum AlphaRange
Name Value
kAlphaZero 0
kAlphaBetweenZeroAndOne 1
kAlphaOne 2

Represents potentially-meaningful ranges of alpha values. If `CheckConfig()` succeeded with an

alpha value of 0.49, it doesn't need to be checked again if the alpha value changes to 0.50.

Zero and one are treated specially, since they might be optimized by the display driver.

Defined at line 33 of file ../../src/ui/scenic/lib/display/internal/layer_equivalence.h