Struct wayland_protocols_wlr::output_management::v1::server::zwlr_output_head_v1::ZwlrOutputHeadV1
source · pub struct ZwlrOutputHeadV1 { /* private fields */ }
server
only.Expand description
output device
A head is an output device. The difference between a wl_output object and a head is that heads are advertised even if they are turned off. A head object only advertises properties and cannot be used directly to change them.
A head has some read-only properties: modes, name, description and physical_size. These cannot be changed by clients.
Other properties can be updated via a wlr_output_configuration object.
Properties sent via this interface are applied atomically via the wlr_output_manager.done event. No guarantees are made regarding the order in which properties are sent.
See also the Request enum for this interface.
Implementations§
source§impl ZwlrOutputHeadV1
impl ZwlrOutputHeadV1
sourcepub fn name(&self, name: String)
pub fn name(&self, name: String)
head name
This event describes the head name.
The naming convention is compositor defined, but limited to alphanumeric characters and dashes (-). Each name is unique among all wlr_output_head objects, but if a wlr_output_head object is destroyed the same name may be reused later. The names will also remain consistent across sessions with the same hardware and software configuration.
Examples of names include ‘HDMI-A-1’, ‘WL-1’, ‘X11-1’, etc. However, do not assume that the name is a reflection of an underlying DRM connector, X11 connection, etc.
If the compositor implements the xdg-output protocol and this head is enabled, the xdg_output.name event must report the same name.
The name event is sent after a wlr_output_head object is created. This event is only sent once per object, and the name does not change over the lifetime of the wlr_output_head object.
sourcepub fn description(&self, description: String)
pub fn description(&self, description: String)
head description
This event describes a human-readable description of the head.
The description is a UTF-8 string with no convention defined for its contents. Examples might include ‘Foocorp 11“ Display’ or ‘Virtual X11 output via :1’. However, do not assume that the name is a reflection of the make, model, serial of the underlying DRM connector or the display name of the underlying X11 connection, etc.
If the compositor implements xdg-output and this head is enabled, the xdg_output.description must report the same description.
The description event is sent after a wlr_output_head object is created. This event is only sent once per object, and the description does not change over the lifetime of the wlr_output_head object.
sourcepub fn physical_size(&self, width: i32, height: i32)
pub fn physical_size(&self, width: i32, height: i32)
head physical size
This event describes the physical size of the head. This event is only sent if the head has a physical size (e.g. is not a projector or a virtual device).
sourcepub fn mode(&self, mode: &ZwlrOutputModeV1)
pub fn mode(&self, mode: &ZwlrOutputModeV1)
introduce a mode
This event introduces a mode for this head. It is sent once per supported mode.
sourcepub fn enabled(&self, enabled: i32)
pub fn enabled(&self, enabled: i32)
head is enabled or disabled
This event describes whether the head is enabled. A disabled head is not mapped to a region of the global compositor space.
When a head is disabled, some properties (current_mode, position, transform and scale) are irrelevant.
sourcepub fn current_mode(&self, mode: &ZwlrOutputModeV1)
pub fn current_mode(&self, mode: &ZwlrOutputModeV1)
current mode
This event describes the mode currently in use for this head. It is only sent if the output is enabled.
sourcepub fn position(&self, x: i32, y: i32)
pub fn position(&self, x: i32, y: i32)
current position
This events describes the position of the head in the global compositor space. It is only sent if the output is enabled.
sourcepub fn transform(&self, transform: Transform)
pub fn transform(&self, transform: Transform)
current transformation
This event describes the transformation currently applied to the head. It is only sent if the output is enabled.
sourcepub fn scale(&self, scale: f64)
pub fn scale(&self, scale: f64)
current scale
This events describes the scale of the head in the global compositor space. It is only sent if the output is enabled.
sourcepub fn finished(&self)
pub fn finished(&self)
the head has disappeared
This event indicates that the head is no longer available. The head object becomes inert. Clients should send a destroy request and release any resources associated with it.
sourcepub fn make(&self, make: String)
pub fn make(&self, make: String)
head manufacturer
This event describes the manufacturer of the head.
This must report the same make as the wl_output interface does in its geometry event.
Together with the model and serial_number events the purpose is to allow clients to recognize heads from previous sessions and for example load head-specific configurations back.
It is not guaranteed this event will be ever sent. A reason for that can be that the compositor does not have information about the make of the head or the definition of a make is not sensible in the current setup, for example in a virtual session. Clients can still try to identify the head by available information from other events but should be aware that there is an increased risk of false positives.
It is not recommended to display the make string in UI to users. For that the string provided by the description event should be preferred.
sourcepub fn model(&self, model: String)
pub fn model(&self, model: String)
head model
This event describes the model of the head.
This must report the same model as the wl_output interface does in its geometry event.
Together with the make and serial_number events the purpose is to allow clients to recognize heads from previous sessions and for example load head-specific configurations back.
It is not guaranteed this event will be ever sent. A reason for that can be that the compositor does not have information about the model of the head or the definition of a model is not sensible in the current setup, for example in a virtual session. Clients can still try to identify the head by available information from other events but should be aware that there is an increased risk of false positives.
It is not recommended to display the model string in UI to users. For that the string provided by the description event should be preferred.
sourcepub fn serial_number(&self, serial_number: String)
pub fn serial_number(&self, serial_number: String)
head serial number
This event describes the serial number of the head.
Together with the make and model events the purpose is to allow clients to recognize heads from previous sessions and for example load head- specific configurations back.
It is not guaranteed this event will be ever sent. A reason for that can be that the compositor does not have information about the serial number of the head or the definition of a serial number is not sensible in the current setup. Clients can still try to identify the head by available information from other events but should be aware that there is an increased risk of false positives.
It is not recommended to display the serial_number string in UI to users. For that the string provided by the description event should be preferred.
sourcepub fn adaptive_sync(&self, state: AdaptiveSyncState)
pub fn adaptive_sync(&self, state: AdaptiveSyncState)
current adaptive sync state
This event describes whether adaptive sync is currently enabled for the head or not. Adaptive sync is also known as Variable Refresh Rate or VRR.
Trait Implementations§
source§impl Borrow<ObjectId> for ZwlrOutputHeadV1
impl Borrow<ObjectId> for ZwlrOutputHeadV1
source§impl Clone for ZwlrOutputHeadV1
impl Clone for ZwlrOutputHeadV1
source§fn clone(&self) -> ZwlrOutputHeadV1
fn clone(&self) -> ZwlrOutputHeadV1
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ZwlrOutputHeadV1
impl Debug for ZwlrOutputHeadV1
source§impl Hash for ZwlrOutputHeadV1
impl Hash for ZwlrOutputHeadV1
source§impl PartialEq<Weak<ZwlrOutputHeadV1>> for ZwlrOutputHeadV1
impl PartialEq<Weak<ZwlrOutputHeadV1>> for ZwlrOutputHeadV1
source§impl PartialEq<ZwlrOutputHeadV1> for ZwlrOutputHeadV1
impl PartialEq<ZwlrOutputHeadV1> for ZwlrOutputHeadV1
source§fn eq(&self, other: &ZwlrOutputHeadV1) -> bool
fn eq(&self, other: &ZwlrOutputHeadV1) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Resource for ZwlrOutputHeadV1
impl Resource for ZwlrOutputHeadV1
source§fn object_data(&self) -> Option<&Arc<dyn Any + Send + Sync>>
fn object_data(&self) -> Option<&Arc<dyn Any + Send + Sync>>
source§fn handle(&self) -> &WeakHandle
fn handle(&self) -> &WeakHandle
source§fn from_id(conn: &DisplayHandle, id: ObjectId) -> Result<Self, InvalidId>
fn from_id(conn: &DisplayHandle, id: ObjectId) -> Result<Self, InvalidId>
source§fn send_event(&self, evt: Self::Event<'_>) -> Result<(), InvalidId>
fn send_event(&self, evt: Self::Event<'_>) -> Result<(), InvalidId>
source§fn parse_request(
conn: &DisplayHandle,
msg: Message<ObjectId, OwnedFd>
) -> Result<(Self, Self::Request), DispatchError>
fn parse_request( conn: &DisplayHandle, msg: Message<ObjectId, OwnedFd> ) -> Result<(Self, Self::Request), DispatchError>
source§fn write_event<'a>(
&self,
conn: &DisplayHandle,
msg: Self::Event<'a>
) -> Result<Message<ObjectId, BorrowedFd<'a>>, InvalidId>
fn write_event<'a>( &self, conn: &DisplayHandle, msg: Self::Event<'a> ) -> Result<Message<ObjectId, BorrowedFd<'a>>, InvalidId>
source§fn is_alive(&self) -> bool
fn is_alive(&self) -> bool
impl Eq for ZwlrOutputHeadV1
Auto Trait Implementations§
impl !RefUnwindSafe for ZwlrOutputHeadV1
impl Send for ZwlrOutputHeadV1
impl Sync for ZwlrOutputHeadV1
impl Unpin for ZwlrOutputHeadV1
impl !UnwindSafe for ZwlrOutputHeadV1
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.