template <>

class WireWeakOnewayBufferClientImpl

Defined at line 6532 of file fidling/gen/sdk/fidl/fuchsia.hardware.display/fuchsia.hardware.display/cpp/fidl/fuchsia.hardware.display/cpp/wire_messaging.h

Public Methods

::fidl::OneWayStatus ReleaseImage (const ::fuchsia_hardware_display::wire::ImageId & image_id)

Releases an imported image.

`image_id` must be already imported by

[`fuchsia.hardware.display/Coordinator.ImportImage`].

The image must not be the capture target of an ongoing capture specified

in [`fuchsia.hardware.display/Coordinator.StartCapture`].

When an image is released, it is immediately removed from any draft

or active configurations, and any fences associated with the image are

dropped. The resources associated with the image will be released as

soon as the image is no longer in use.

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus ImportEvent (::zx::event && event, const ::fuchsia_hardware_display::wire::EventId & id)

Imports an event into the driver and associates it with the given id.

It is illegal for id to be equal to INVALID_DISP_ID, and it is undefined to

import one event with two different ids or to import two different events

with the same id (note that ids map well to koids).

If a client is reusing events, they must clear the signal

before referencing the id again.

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus ReleaseEvent (const ::fuchsia_hardware_display::wire::EventId & id)

Releases the event imported with the given id.

If any images are currently using the given event, the event

will still be waited up or signaled as appropriate before its

resources are released. It is an error to reuse an ID while the

active config has references to it.

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus DestroyLayer (const ::fuchsia_hardware_display::wire::LayerId & layer_id)

Destroys the given layer.

It is illegal to destroy a layer which does not exist or which is in use.

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus SetDisplayMode (const ::fuchsia_hardware_display_types::wire::DisplayId & display_id, const ::fuchsia_hardware_display_types::wire::Mode & mode)

Sets the mode for a display.

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus SetDisplayColorConversion (const ::fuchsia_hardware_display_types::wire::DisplayId & display_id, const ::fidl::Array<float, 3> & preoffsets, const ::fidl::Array<float, 9> & coefficients, const ::fidl::Array<float, 3> & postoffsets)

Set the color conversion applied to the display. The conversion is applied to

to each pixel according to the formula:

(coefficients * (pixel + preoffsets)) + postoffsets

where pixel is a column vector consisting of the pixel's 3 components.

`coefficients` is passed in row-major order. If the first entry of an array is NaN, the

array is treated as the identity element for the relevant operation.

Hardware that support color correction generally accept a limited range of coefficient

values. Coefficients in the range of [-2, 2] inclusive will be accepted by most

hardware. The hardware driver will clamp values that are outside its acceptable range.

`preoffsets`, `postoffsets`: Clients are encourged to produce color correction values that

do not depend on pre and post offsets since some hardware do not have support for that.

For cases where pre and post offset values need to be used, the range should be limited to

(-1, 1) exclusive as confirmed by CheckConfig API. Values outside this range will be

rejected.

Clients are encouraged to use the CheckConfig API to confirm support for correction and to

validate their color correction input values.

This a stateful call. Once color conversion values have been succesfully applied via a call

to ApplyConfig() they will remain in place until changed and another ApplyConfig() call is

successful. If SetDisplayColorConversion() is called and then the config is discarded, then

the last successfully applied state is restored.

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus SetDisplayLayers (const ::fuchsia_hardware_display_types::wire::DisplayId & display_id, ::fidl::VectorView< ::fuchsia_hardware_display::wire::LayerId> layer_ids)

Assigns a list of layers to be composited on a display.

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus SetLayerPrimaryConfig (const ::fuchsia_hardware_display::wire::LayerId & layer_id, const ::fuchsia_hardware_display_types::wire::ImageMetadata & image_metadata)

Configures the layer as a primary layer with no image and the default

config (no src_frame cropping, the identity transform, positioned in the

top-left corner of the composed output, and no scaling).

See the documentation on SetLayerImage for details on how this method

affects the layer's contents.

It is illegal to pass an invalid layer id.

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus SetLayerPrimaryPosition (const ::fuchsia_hardware_display::wire::LayerId & layer_id, ::fuchsia_hardware_display_types::wire::CoordinateTransformation image_source_transformation, const ::fuchsia_math::wire::RectU & image_source, const ::fuchsia_math::wire::RectU & display_destination)

Sets the layer transform, scaling, and positioning.

CheckConfig() will return INVALID_CONFIG if any of the configuration

validity conditions specified here is violated.

Calling this on a non-primary layer or passing an invalid transform is

illegal.

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus SetLayerPrimaryAlpha (const ::fuchsia_hardware_display::wire::LayerId & layer_id, ::fuchsia_hardware_display_types::wire::AlphaMode mode, float val)

Sets the alpha mode of the plane.

If `mode` == DISABLED, the layer is opaque and `val` is ignored.

If `mode` == PREMULTIPLIED or HW_MULTIPLY and `val` is NaN, the alpha

used when blending is determined by the per-pixel alpha channel.

If `mode` == PREMULTIPLIED or HW_MULTIPLY and `val` is not NaN, the

alpha used when blending is the product of `val` and any per-pixel

alpha. Additionally, if `mode` == PREMULTIPLIED, then the hardware

premultiplies the color channel with `val` before blending.

It is illegal to call this on a non-primary layer, to pass an

invalid mode, or to pass a value of `val` which is not NaN or

in the range [0, 1].

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus SetLayerColorConfig (const ::fuchsia_hardware_display::wire::LayerId & layer_id, const ::fuchsia_hardware_display_types::wire::Color & color, const ::fuchsia_math::wire::RectU & display_destination)

Configures the layer as a solid color fill layer.

It is illegal to call this on an invalid layer.

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus SetLayerImage2 (const ::fuchsia_hardware_display::wire::LayerId & layer_id, const ::fuchsia_hardware_display::wire::ImageId & image_id, const ::fuchsia_hardware_display::wire::EventId & wait_event_id)

Sets the image for the layer's draft configuration.

If wait_event_id corresponds to an imported event, the driver will

wait for ZX_EVENT_SIGNALED on the object before presenting the image.

A layer's applied image is the most recently applied image which either has

no wait event or whose wait event has been signaled. Whenever a new image

is applied, any older images which never got applied are dropped, and

their signal events will be fired as soon as their wait events are

signaled. The driver also does not have any concept like 'target vsync',

meaning that if multiple images are applied within one vsync period, then

only the last image will actually be displayed.

By default, the driver retains an applied image until a new image is

applied. However, setting a layer's ImageConfig with SetLayerPrimaryConfig

resets the layer's applied and waiting images, even if the new ImageConfig

matches the old ImageConfig.

An image cannot be used for multiple layers simultaneously, nor can an

image be given back to the display coordinator while it is still in use.

An image is considered in use when it is part of a draft configuration

or from when its configuration is applied until it is replaced by a

subsequent configuration that is *displayed* (not merely applied).

It is illegal to call this with an invalid layer or image id, to

call it on a color layer, or to call it with an image and layer whose

ImageConfigs do not match. It is illegal to apply a configuration

with an image layer that has no image (note that is is not illegal to

validate such a configuration). It is illegal to reuse a wait event which

another layer that has not been presented is waiting on.

Each layer can track a maximum of `MAX_WAITING_IMAGES_PER_LAYER` waiting images.

An image becomes "waiting" when it is the most recent image set to a layer that appears in

a config that is applied via `ApplyConfig()` or similar. To avoid exceeding the maximum,

the client can infer that the image is no longer waiting by:

- noting the config stamp when the config containing the layer/image is applied

- watching for that same (or later) config stamp to be returned by

`CoordinatorListener.OnVsync()`.

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus DiscardConfig ()

Discard all draft configuration changes.

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus ApplyConfig3 (::fuchsia_hardware_display::wire::CoordinatorApplyConfig3Request CoordinatorApplyConfig3Request)

Applies any draft changes to the current configuration. This will

not apply draft changes to layers which are not on any display.

If the draft configuration cannot be applied, this call will silently

fail, so the client should ensure its configuration is valid by

calling [`Coordinator.CheckConfig`].

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus AcknowledgeVsync (uint64_t cookie)

Acknowledges the receipt of one `OnVsync` message.

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus SetVirtconMode (::fuchsia_hardware_display::wire::VirtconMode mode)

Sets the visibility behavior of the virtcon.

This must only be called from the Virtcon client.

Caller provides the backing storage for FIDL message.

::fidl::OneWayStatus ReleaseBufferCollection (const ::fuchsia_hardware_display::wire::BufferCollectionId & buffer_collection_id)

Release an imported buffer collection.

Caller provides the backing storage for FIDL message.