fix scaling (at least for integer scaling, fractional is still broken)
This commit is contained in:
parent
a61845bb09
commit
1b0c426c17
1 changed files with 12 additions and 4 deletions
16
src/main.rs
16
src/main.rs
|
@ -387,11 +387,16 @@ impl Dispatch<ZwlrScreencopyFrameV1, ()> for AppState {
|
|||
|
||||
if let (Some(surface_data), Some(_)) = (state.surfaces.get_mut(&data.output), &state.shm) {
|
||||
if let Some(buffer) = &data.buffer {
|
||||
let transform = state.output_info
|
||||
.get(&data.output)
|
||||
let output_info = state.output_info
|
||||
.get(&data.output);
|
||||
|
||||
let transform = output_info
|
||||
.map_or(Transform::Normal, |info| info.transform);
|
||||
let scale = output_info
|
||||
.map_or(1, |info| info.scale);
|
||||
|
||||
surface_data.surface.set_buffer_transform(transform);
|
||||
surface_data.surface.set_buffer_scale(scale);
|
||||
|
||||
if data.y_inverted {
|
||||
surface_data.surface.set_buffer_transform(Transform::Flipped180);
|
||||
|
@ -522,12 +527,15 @@ fn main() {
|
|||
let compositor = app_state.compositor.as_ref().unwrap();
|
||||
let layer_shell = app_state.layer_shell.as_ref().unwrap();
|
||||
|
||||
let transform = app_state.output_info
|
||||
.get(output)
|
||||
let output_info = app_state.output_info.get(output);
|
||||
let transform = output_info
|
||||
.map_or(Transform::Normal, |info| info.transform);
|
||||
let scale = output_info
|
||||
.map_or(1, |info| info.scale);
|
||||
|
||||
let surface = compositor.create_surface(&qh, ());
|
||||
surface.set_buffer_transform(transform);
|
||||
surface.set_buffer_scale(scale);
|
||||
|
||||
let layer_surface = layer_shell.get_layer_surface(
|
||||
&surface,
|
||||
|
|
Loading…
Reference in a new issue