From 1c521e48313b42d2e314d139c3cf4ac5dc44e7a7 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Sun, 9 Mar 2025 22:03:14 +0300 Subject: Update Smithay (Framebuffer type) --- src/backend/tty.rs | 7 ++++--- src/backend/winit.rs | 16 ++++++++++------ 2 files changed, 14 insertions(+), 9 deletions(-) (limited to 'src/backend') diff --git a/src/backend/tty.rs b/src/backend/tty.rs index 003413bf..cbb8c8c0 100644 --- a/src/backend/tty.rs +++ b/src/backend/tty.rs @@ -28,7 +28,7 @@ use smithay::backend::libinput::{LibinputInputBackend, LibinputSessionInterface} use smithay::backend::renderer::gles::GlesRenderer; use smithay::backend::renderer::multigpu::gbm::GbmGlesBackend; use smithay::backend::renderer::multigpu::{GpuManager, MultiFrame, MultiRenderer}; -use smithay::backend::renderer::{DebugFlags, ImportDma, ImportEgl, Renderer}; +use smithay::backend::renderer::{DebugFlags, ImportDma, ImportEgl, RendererSuper}; use smithay::backend::session::libseat::LibSeatSession; use smithay::backend::session::{Event as SessionEvent, Session}; use smithay::backend::udev::{self, UdevBackend, UdevEvent}; @@ -101,15 +101,16 @@ pub type TtyRenderer<'render> = MultiRenderer< GbmGlesBackend, >; -pub type TtyFrame<'render, 'frame> = MultiFrame< +pub type TtyFrame<'render, 'frame, 'buffer> = MultiFrame< 'render, 'render, 'frame, + 'buffer, GbmGlesBackend, GbmGlesBackend, >; -pub type TtyRendererError<'render> = as Renderer>::Error; +pub type TtyRendererError<'render> = as RendererSuper>::Error; type GbmDrmCompositor = DrmCompositor< GbmAllocator, diff --git a/src/backend/winit.rs b/src/backend/winit.rs index 3deec7a3..667b9209 100644 --- a/src/backend/winit.rs +++ b/src/backend/winit.rs @@ -190,12 +190,16 @@ impl Winit { } // Hand them over to winit. - self.backend.bind().unwrap(); - let age = self.backend.buffer_age().unwrap(); - let res = self - .damage_tracker - .render_output(self.backend.renderer(), age, &elements, [0.; 4]) - .unwrap(); + let res = { + let (renderer, mut framebuffer) = self.backend.bind().unwrap(); + // FIXME: currently impossible to call due to a mutable borrow. + // + // let age = self.backend.buffer_age().unwrap(); + let age = 0; + self.damage_tracker + .render_output(renderer, &mut framebuffer, age, &elements, [0.; 4]) + .unwrap() + }; niri.update_primary_scanout_output(output, &res.states); -- cgit