aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/tty.rs7
-rw-r--r--src/backend/winit.rs16
2 files changed, 14 insertions, 9 deletions
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<GlesRenderer, DrmDeviceFd>,
>;
-pub type TtyFrame<'render, 'frame> = MultiFrame<
+pub type TtyFrame<'render, 'frame, 'buffer> = MultiFrame<
'render,
'render,
'frame,
+ 'buffer,
GbmGlesBackend<GlesRenderer, DrmDeviceFd>,
GbmGlesBackend<GlesRenderer, DrmDeviceFd>,
>;
-pub type TtyRendererError<'render> = <TtyRenderer<'render> as Renderer>::Error;
+pub type TtyRendererError<'render> = <TtyRenderer<'render> as RendererSuper>::Error;
type GbmDrmCompositor = DrmCompositor<
GbmAllocator<DrmDeviceFd>,
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);