aboutsummaryrefslogtreecommitdiff
path: root/src/protocols
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-03-15 11:10:54 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-03-15 13:29:36 +0400
commit642c6e7512f25f1fdc47dfa6a6eaec38c5faa69b (patch)
tree9b2a7fae57b1fe8cf11eee72e07fbc290761060a /src/protocols
parent6839a118bb691fc022c8ac9e2564717ae995b5ce (diff)
downloadniri-642c6e7512f25f1fdc47dfa6a6eaec38c5faa69b.tar.gz
niri-642c6e7512f25f1fdc47dfa6a6eaec38c5faa69b.tar.bz2
niri-642c6e7512f25f1fdc47dfa6a6eaec38c5faa69b.zip
Store gamma changes to apply on session resume
Diffstat (limited to 'src/protocols')
-rw-r--r--src/protocols/gamma_control.rs7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/protocols/gamma_control.rs b/src/protocols/gamma_control.rs
index 07e5a848..083710ed 100644
--- a/src/protocols/gamma_control.rs
+++ b/src/protocols/gamma_control.rs
@@ -28,7 +28,7 @@ pub struct GammaControlManagerGlobalData {
pub trait GammaControlHandler {
fn gamma_control_manager_state(&mut self) -> &mut GammaControlManagerState;
fn get_gamma_size(&mut self, output: &Output) -> Option<u32>;
- fn set_gamma(&mut self, output: &Output, ramp: Option<&[u16]>) -> Option<()>;
+ fn set_gamma(&mut self, output: &Output, ramp: Option<Vec<u16>>) -> Option<()>;
}
pub struct GammaControlState {
@@ -162,8 +162,8 @@ where
trace!("setting gamma for output {}", output.name());
// Start with a u16 slice so it's aligned correctly.
- let mut buf = vec![0u16; data.gamma_size as usize * 3];
- let buf = bytemuck::cast_slice_mut(&mut buf);
+ let mut gamma = vec![0u16; data.gamma_size as usize * 3];
+ let buf = bytemuck::cast_slice_mut(&mut gamma);
let mut file = File::from(fd);
{
let _span = tracy_client::span!("read gamma from fd");
@@ -195,7 +195,6 @@ where
}
}
}
- let gamma = bytemuck::cast_slice(buf);
if state.set_gamma(&output, Some(gamma)).is_none() {
resource.failed();