Chromium aura output management
- external
zaura_output_manager_v2
A global responsible for propagating atomic output configuration changes to clients. An output configuration is a union of added / removed outputs and updated output metrics.
Added outputs arrive at the client as wl_registry.global events, removed outputs as wl_registry.global_remove events and updated output metrics as a sequence of events defined on the zaura_output_manager_v2 interface. This is followed by the manager's done event which signals the end of the transaction.
The change should be processed by clients in a way that transitions from one output configuration state to another without exposing the intermediate output state to the rest of the application.
Participating servers should emit the zaura_output_manager_v2 global before any wl_output globals in the sequence of wl_registry.global events.
Participating clients should bind the zaura_output_manager_v2 before any wl_output globals. This ordering is required to ensure clients receive all necessary output configuration information before receiving any further server events that may reference bound wl_outputs.
Clients can expect that all events comprising a configuration change are sent synchronously, one after the other, before any other server events that leverage the output as an event param.
done()
This event is sent after all added, changed and removed output events for a given wl_output have been dispatched to the client.
display_id(output_name: uint, display_id_hi: uint, display_id_lo: uint)
Argument | Type | Description |
---|---|---|
output_name | uint | |
display_id_hi | uint | |
display_id_lo | uint |
This event describes the 64bit display id assigned to each display by ChromeOS. The value is opaque and should not be interpreted.
The event is sent immediately after the wl_registry.global event for the output and subsequently in latter display configuration changes.
logical_position(output_name: uint, x: int, y: int)
Argument | Type | Description |
---|---|---|
output_name | uint | |
x | int | x position within the global compositor space |
y | int | y position within the global compositor space |
The position event describes the location of the wl_output within the global compositor space.
The event is sent immediately after the wl_registry.global event for the output and subsequently in latter display configuration changes.
logical_size(output_name: uint, width: int, height: int)
Argument | Type | Description |
---|---|---|
output_name | uint | |
width | int | width in global compositor space |
height | int | height in global compositor space |
The logical_size event describes the logical size of the output in the global compositor space.
The event is sent immediately after the wl_registry.global event for the output and subsequently in latter display configuration changes.
physical_size(output_name: uint, width: int, height: int)
Argument | Type | Description |
---|---|---|
output_name | uint | |
width | int | width in global compositor space |
height | int | height in global compositor space |
The physical resolution of the display in pixels. The value should not include any overscan insets or display rotation, except for any panel orientation adjustment.
The event is sent immediately after the wl_registry.global event for the output and subsequently in latter display configuration changes.
work_area_insets(output_name: uint, top: int, left: int, bottom: int, right: int)
Argument | Type | Description |
---|---|---|
output_name | uint | |
top | int | |
left | int | |
bottom | int | |
right | int |
This event describes the work area insets for the output in logical screen coordinates, from which the work area can be calculated.
The event is sent when binding to the output object and subsequently as output state changes.
device_scale_factor(output_name: uint, device_scale_factor: uint)
Argument | Type | Description |
---|---|---|
output_name | uint | |
device_scale_factor | uint | display scale factor, in float format |
The scale factor of the output device. We reinterpret_cast the float scale factor into a 32-bit uint and later cast back into a float. This is because wayland does not support native transport of floats. As different CPU architectures may use different endian representations for IEEE 754 floats, this protocol implicitly assumes that the caller and receiver are the same machine.
The event is sent immediately after the wl_registry.global event for the output and subsequently in latter display configuration changes.
logical_transform(output_name: uint, transform: int<wl_output.transform>)
Argument | Type | Description |
---|---|---|
output_name | uint | |
transform | int<wl_output.transform> | transform that maps framebuffer to output |
This event describes the logical transform for the output. Whereas panel transform corresponds to the display's panel rotation, the logical transform corresponds to the display's logical rotation.
The event is sent immediately after the wl_registry.global event for the output and subsequently in latter display configuration changes.
panel_transform(output_name: uint, transform: int<wl_output.transform>)
Argument | Type | Description |
---|---|---|
output_name | uint | |
transform | int<wl_output.transform> | transform that maps framebuffer to output |
This event describes the panel transform for the output, which is the associated display's panel rotation.
The event is sent immediately after the wl_registry.global event for the output and subsequently in latter display configuration changes.
name(output_name: uint, name: string)
Argument | Type | Description |
---|---|---|
output_name | uint | |
name | string | output name |
The name is a UTF-8 string with no convention defined for its contents.
The event is sent immediately after the wl_registry.global event for the output and subsequently in latter display configuration changes.
description(output_name: uint, description: string)
Argument | Type | Description |
---|---|---|
output_name | uint | |
description | string | output description |
The description is a UTF-8 string with no convention defined for its contents.
The event is sent immediately after the wl_registry.global event for the output and subsequently in latter display configuration changes.
overscan_insets(output_name: uint, top: int, left: int, bottom: int, right: int)
Argument | Type | Description |
---|---|---|
output_name | uint | |
top | int | |
left | int | |
bottom | int | |
right | int |
This event describes the overscan insets for the output in physical pixels.
The event is sent immediately after the wl_registry.global event for the output and subsequently in latter display configuration changes.
activated(output_name: uint)
Argument | Type | Description |
---|---|---|
output_name | uint |
Notifies that this output is now active output. It is typically used as a target when a new window is created without specific bounds.
Compositor Support
Copyright
Copyright 2024 The Chromium Authors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.