in native/desktop-linux/src/linux/window.rs [245:267]
fn on_resize(&mut self, size: &LogicalSize, physical_size: PhysicalSize, shm: &Shm) {
if let Some(viewport) = &self.viewport {
debug!("viewport.set_destination({}, {})", size.width.round(), size.height.round());
viewport.set_destination(size.width.round(), size.height.round());
} else {
let surface = self.window.wl_surface();
assert!(self.current_scale % 1.0 < 0.0001);
debug!("surface.set_buffer_scale({})", self.current_scale);
#[allow(clippy::cast_possible_truncation)]
surface.set_buffer_scale(self.current_scale as i32);
}
if let Some(rendering_data) = &mut self.rendering_data {
match rendering_data {
RenderingData::Egl(egl_data) => {
egl_data.resize(physical_size);
}
RenderingData::Software(data) => {
data.resize(shm, physical_size);
}
}
}
}