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