class Layer
Defined at line 2334 of file fidling/gen/sdk/fidl/fuchsia.hardware.display.engine/fuchsia.hardware.display.engine/cpp/fidl/fuchsia.hardware.display.engine/cpp/natural_types.h
Public Methods
void Layer (::fuchsia_math::RectU display_destination, ::fuchsia_math::RectU image_source, ::fuchsia_hardware_display_engine::ImageId image_id, ::fuchsia_hardware_display_types::ImageMetadata image_metadata, ::fuchsia_hardware_display_types::Color fallback_color, ::fuchsia_hardware_display_types::AlphaMode alpha_mode, float alpha_layer_val, ::fuchsia_hardware_display_types::CoordinateTransformation image_source_transformation)
void Layer ()
Default constructs a |Layer| only if all of its members are default constructible.
Defined at line 2344 of file fidling/gen/sdk/fidl/fuchsia.hardware.display.engine/fuchsia.hardware.display.engine/cpp/fidl/fuchsia.hardware.display.engine/cpp/natural_types.h
void Layer (Layer && )
Defined at line 2347 of file fidling/gen/sdk/fidl/fuchsia.hardware.display.engine/fuchsia.hardware.display.engine/cpp/fidl/fuchsia.hardware.display.engine/cpp/natural_types.h
void Layer (Storage_ storage)
void Layer (const Layer & other)
Layer & operator= (const Layer & other)
bool operator== (const Layer & other)
bool operator!= (const Layer & other)
const ::fuchsia_math::RectU & display_destination ()
The display image (composited output) region occupied by the layer.
The rectangle uses the Vulkan coordinate space. The origin is at the
display's top-left corner. The X axis points to the right, and the Y axis
points downwards.
A valid layer definition requires a valid non-empty display destination
rectangle that is entirely contained within the display. A rectangle is
empty iff its size is 0x0 (width and height are both zero).
::fuchsia_math::RectU & display_destination ()
The display image (composited output) region occupied by the layer.
The rectangle uses the Vulkan coordinate space. The origin is at the
display's top-left corner. The X axis points to the right, and the Y axis
points downwards.
A valid layer definition requires a valid non-empty display destination
rectangle that is entirely contained within the display. A rectangle is
empty iff its size is 0x0 (width and height are both zero).
Layer & display_destination (::fuchsia_math::RectU value)
The display image (composited output) region occupied by the layer.
The rectangle uses the Vulkan coordinate space. The origin is at the
display's top-left corner. The X axis points to the right, and the Y axis
points downwards.
A valid layer definition requires a valid non-empty display destination
rectangle that is entirely contained within the display. A rectangle is
empty iff its size is 0x0 (width and height are both zero).
const ::fuchsia_math::RectU & image_source ()
The associated image region whose pixels are drawn by the layer.
The rectangle uses the Vulkan coordinate space. The origin is at the
image's top-left corner. The X axis points to the right, and the Y axis
points downwards.
A valid layer definition requires a valid image source rectangle that is
entirely contained within the image. If the rectangle is empty, the
hardware is configured to skip fetching image pixels, and instead fill
`display_destination` using a constant color, which is `fallback_color`
defined below.
Hardware image scaling is requested implicitly, when the region's
dimensions differ from the dimensions of `display_destination`. Some
display hardware may not support scaling. All display hardware has
limitations in scaling support.
::fuchsia_math::RectU & image_source ()
The associated image region whose pixels are drawn by the layer.
The rectangle uses the Vulkan coordinate space. The origin is at the
image's top-left corner. The X axis points to the right, and the Y axis
points downwards.
A valid layer definition requires a valid image source rectangle that is
entirely contained within the image. If the rectangle is empty, the
hardware is configured to skip fetching image pixels, and instead fill
`display_destination` using a constant color, which is `fallback_color`
defined below.
Hardware image scaling is requested implicitly, when the region's
dimensions differ from the dimensions of `display_destination`. Some
display hardware may not support scaling. All display hardware has
limitations in scaling support.
Layer & image_source (::fuchsia_math::RectU value)
The associated image region whose pixels are drawn by the layer.
The rectangle uses the Vulkan coordinate space. The origin is at the
image's top-left corner. The X axis points to the right, and the Y axis
points downwards.
A valid layer definition requires a valid image source rectangle that is
entirely contained within the image. If the rectangle is empty, the
hardware is configured to skip fetching image pixels, and instead fill
`display_destination` using a constant color, which is `fallback_color`
defined below.
Hardware image scaling is requested implicitly, when the region's
dimensions differ from the dimensions of `display_destination`. Some
display hardware may not support scaling. All display hardware has
limitations in scaling support.
const ::fuchsia_hardware_display_engine::ImageId & image_id ()
The image whose pixels are drawn by this layer.
If valid, the image ID must be the result of a successful call to
[`fuchsia.hardware.display.engine/Engine.ImportImage`].
A valid layer definition requires that the image ID is invalid iff
`image_source` specifies an empty rectangle.
To allow for future evolution, Layer consumers must ignore the image ID
if `image_source` specifies an empty rectangle.
Hardware image cropping is requested implicitly, when the source
region's dimensions differ from the image's dimensions. Some display
hardware may not support cropping.
::fuchsia_hardware_display_engine::ImageId & image_id ()
The image whose pixels are drawn by this layer.
If valid, the image ID must be the result of a successful call to
[`fuchsia.hardware.display.engine/Engine.ImportImage`].
A valid layer definition requires that the image ID is invalid iff
`image_source` specifies an empty rectangle.
To allow for future evolution, Layer consumers must ignore the image ID
if `image_source` specifies an empty rectangle.
Hardware image cropping is requested implicitly, when the source
region's dimensions differ from the image's dimensions. Some display
hardware may not support cropping.
Layer & image_id (::fuchsia_hardware_display_engine::ImageId value)
The image whose pixels are drawn by this layer.
If valid, the image ID must be the result of a successful call to
[`fuchsia.hardware.display.engine/Engine.ImportImage`].
A valid layer definition requires that the image ID is invalid iff
`image_source` specifies an empty rectangle.
To allow for future evolution, Layer consumers must ignore the image ID
if `image_source` specifies an empty rectangle.
Hardware image cropping is requested implicitly, when the source
region's dimensions differ from the image's dimensions. Some display
hardware may not support cropping.
const ::fuchsia_hardware_display_types::ImageMetadata & image_metadata ()
The arguments used to import `image_id`.
If `image_id` is valid, the metadata must equal the argument passed
to [`fuchsia.hardware.display.engine/Engine.ImportImage`].
A valid layer definition requires that the metadata is valid. A valid
layer definition requires that the metadata specifies an empty (0x0)
image with linear tiling if `image_source` specifies an empty rectangle.
::fuchsia_hardware_display_types::ImageMetadata & image_metadata ()
The arguments used to import `image_id`.
If `image_id` is valid, the metadata must equal the argument passed
to [`fuchsia.hardware.display.engine/Engine.ImportImage`].
A valid layer definition requires that the metadata is valid. A valid
layer definition requires that the metadata specifies an empty (0x0)
image with linear tiling if `image_source` specifies an empty rectangle.
Layer & image_metadata (::fuchsia_hardware_display_types::ImageMetadata value)
The arguments used to import `image_id`.
If `image_id` is valid, the metadata must equal the argument passed
to [`fuchsia.hardware.display.engine/Engine.ImportImage`].
A valid layer definition requires that the metadata is valid. A valid
layer definition requires that the metadata specifies an empty (0x0)
image with linear tiling if `image_source` specifies an empty rectangle.
const ::fuchsia_hardware_display_types::Color & fallback_color ()
Fallback when the pixel data for the layer's image cannot be retrieved.
A valid layer definition requires that the color is valid.
If `image_source` specifies an empty region, the hardware is configured
to fill the layer's pixels using this color. Conceptually, the source
image's pixel data will never be available for the image.
The hardware may also use this color as a last resort for situations
such as buffer underruns, when the pixel data for the layer's image
cannot be retrieved fast enough to meet the display connection's timing
requirements.
::fuchsia_hardware_display_types::Color & fallback_color ()
Fallback when the pixel data for the layer's image cannot be retrieved.
A valid layer definition requires that the color is valid.
If `image_source` specifies an empty region, the hardware is configured
to fill the layer's pixels using this color. Conceptually, the source
image's pixel data will never be available for the image.
The hardware may also use this color as a last resort for situations
such as buffer underruns, when the pixel data for the layer's image
cannot be retrieved fast enough to meet the display connection's timing
requirements.
Layer & fallback_color (::fuchsia_hardware_display_types::Color value)
Fallback when the pixel data for the layer's image cannot be retrieved.
A valid layer definition requires that the color is valid.
If `image_source` specifies an empty region, the hardware is configured
to fill the layer's pixels using this color. Conceptually, the source
image's pixel data will never be available for the image.
The hardware may also use this color as a last resort for situations
such as buffer underruns, when the pixel data for the layer's image
cannot be retrieved fast enough to meet the display connection's timing
requirements.
::fuchsia_hardware_display_types::AlphaMode alpha_mode ()
If `alpha_mode` is `AlphaMode.DISABLE`, the layer is opaque and
`alpha_layer_val` is ignored.
If `alpha_mode` is `AlphaMode.PREMULTIPLIED` or `HW_MULTIPLY`, the
alpha used when blending is determined by the product of
`alpha_layer_val` and any per-pixel alpha.
Additionally, if `alpha_mode` is `AlphaMode.PREMULTIPLIED`, then the
hardware must premultiply the color channel with `alpha_layer_val`
before blending.
`alpha_layer_val` must be in the range [0, 1].
::fuchsia_hardware_display_types::AlphaMode & alpha_mode ()
If `alpha_mode` is `AlphaMode.DISABLE`, the layer is opaque and
`alpha_layer_val` is ignored.
If `alpha_mode` is `AlphaMode.PREMULTIPLIED` or `HW_MULTIPLY`, the
alpha used when blending is determined by the product of
`alpha_layer_val` and any per-pixel alpha.
Additionally, if `alpha_mode` is `AlphaMode.PREMULTIPLIED`, then the
hardware must premultiply the color channel with `alpha_layer_val`
before blending.
`alpha_layer_val` must be in the range [0, 1].
Layer & alpha_mode (::fuchsia_hardware_display_types::AlphaMode value)
If `alpha_mode` is `AlphaMode.DISABLE`, the layer is opaque and
`alpha_layer_val` is ignored.
If `alpha_mode` is `AlphaMode.PREMULTIPLIED` or `HW_MULTIPLY`, the
alpha used when blending is determined by the product of
`alpha_layer_val` and any per-pixel alpha.
Additionally, if `alpha_mode` is `AlphaMode.PREMULTIPLIED`, then the
hardware must premultiply the color channel with `alpha_layer_val`
before blending.
`alpha_layer_val` must be in the range [0, 1].
float alpha_layer_val ()
float & alpha_layer_val ()
Layer & alpha_layer_val (float value)
Setter for alpha_layer_val.
::fuchsia_hardware_display_types::CoordinateTransformation image_source_transformation ()
Applied to the input image pixels specified by `image_source`.
`display_destination` must account for image dimensions changes caused
by rotations. For example, rotating a 600x300 pixel image by 90 degrees
would specify 300x600 pixel dimensions in `display_destination`.
A valid layer definition requires that the transformation is the
identity transformation if `image_source` specifies an empty rectangle.
To allow for future evolution, Layer consumers must ignore the
transformation if `image_source` specifies an empty rectangle.
::fuchsia_hardware_display_types::CoordinateTransformation & image_source_transformation ()
Applied to the input image pixels specified by `image_source`.
`display_destination` must account for image dimensions changes caused
by rotations. For example, rotating a 600x300 pixel image by 90 degrees
would specify 300x600 pixel dimensions in `display_destination`.
A valid layer definition requires that the transformation is the
identity transformation if `image_source` specifies an empty rectangle.
To allow for future evolution, Layer consumers must ignore the
transformation if `image_source` specifies an empty rectangle.
Layer & image_source_transformation (::fuchsia_hardware_display_types::CoordinateTransformation value)
Applied to the input image pixels specified by `image_source`.
`display_destination` must account for image dimensions changes caused
by rotations. For example, rotating a 600x300 pixel image by 90 degrees
would specify 300x600 pixel dimensions in `display_destination`.
A valid layer definition requires that the transformation is the
identity transformation if `image_source` specifies an empty rectangle.
To allow for future evolution, Layer consumers must ignore the
transformation if `image_source` specifies an empty rectangle.
void Layer (::fidl::internal::DefaultConstructPossiblyInvalidObjectTag )
Layer & operator= (Layer && )
Defined at line 2348 of file fidling/gen/sdk/fidl/fuchsia.hardware.display.engine/fuchsia.hardware.display.engine/cpp/fidl/fuchsia.hardware.display.engine/cpp/natural_types.h
Friends
class MemberVisitor
class NaturalStructCodingTraits