all: implement output transforms
This commit is contained in:
parent
79df8d69f4
commit
b7d2964e19
20 changed files with 254 additions and 71 deletions
|
|
@ -15,7 +15,7 @@ use {
|
|||
timer::Timer,
|
||||
video::{
|
||||
connector_type::{ConnectorType, CON_UNKNOWN},
|
||||
Connector, DrmDevice, GfxApi, Mode,
|
||||
Connector, DrmDevice, GfxApi, Mode, Transform,
|
||||
},
|
||||
Axis, Direction, ModifiedKeySym, PciId, Workspace,
|
||||
},
|
||||
|
|
@ -473,6 +473,13 @@ impl Client {
|
|||
self.send(&ClientMessage::ConnectorSetEnabled { connector, enabled });
|
||||
}
|
||||
|
||||
pub fn connector_set_transform(&self, connector: Connector, transform: Transform) {
|
||||
self.send(&ClientMessage::ConnectorSetTransform {
|
||||
connector,
|
||||
transform,
|
||||
});
|
||||
}
|
||||
|
||||
pub fn device_connectors(&self, device: DrmDevice) -> Vec<Connector> {
|
||||
let res = self.send_with_response(&ClientMessage::GetDeviceConnectors { device });
|
||||
get_response!(res, vec![], GetDeviceConnectors { connectors });
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ use {
|
|||
logging::LogLevel,
|
||||
theme::{colors::Colorable, sized::Resizable, Color},
|
||||
timer::Timer,
|
||||
video::{connector_type::ConnectorType, Connector, DrmDevice, GfxApi},
|
||||
video::{connector_type::ConnectorType, Connector, DrmDevice, GfxApi, Transform},
|
||||
Axis, Direction, PciId, Workspace,
|
||||
},
|
||||
serde::{Deserialize, Serialize},
|
||||
|
|
@ -342,6 +342,10 @@ pub enum ClientMessage<'a> {
|
|||
device: Option<DrmDevice>,
|
||||
enabled: bool,
|
||||
},
|
||||
ConnectorSetTransform {
|
||||
connector: Connector,
|
||||
transform: Transform,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
|
|
|
|||
|
|
@ -158,6 +158,15 @@ impl Connector {
|
|||
}
|
||||
get!().connector_set_enabled(self, enabled);
|
||||
}
|
||||
|
||||
/// Sets the transformation to apply to the content of this connector.
|
||||
pub fn set_transform(self, transform: Transform) {
|
||||
if !self.exists() {
|
||||
log::warn!("set_transform called on a connector that does not exist");
|
||||
return;
|
||||
}
|
||||
get!().connector_set_transform(self, transform);
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns all available DRM devices.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue