Skip to content

Commit 591f6cb

Browse files
committed
refactor: Avoid BorrowStack on Wayland
No longer really a necessary optimization, as accessing pixel data is an explicit operation, not invisible inside `Deref[Mut]`.
1 parent 89138c5 commit 591f6cb

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

src/backends/wayland/mod.rs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use crate::{
22
backend_interface::*,
33
error::{InitError, SwResultExt},
4-
util::BorrowStack,
54
Rect, SoftBufferError,
65
};
76
use raw_window_handle::{HasDisplayHandle, HasWindowHandle, RawDisplayHandle, RawWindowHandle};
@@ -193,7 +192,7 @@ impl<D: HasDisplayHandle + ?Sized, W: HasWindowHandle> SurfaceInterface<D, W>
193192
event_queue: &self.display.event_queue,
194193
surface: self.surface.as_ref().unwrap(),
195194
front,
196-
back: BorrowStack::new(back, |buffer| buffer.mapped_mut()),
195+
back,
197196
width,
198197
height,
199198
age,
@@ -213,7 +212,7 @@ pub struct BufferImpl<'a> {
213212
event_queue: &'a Mutex<EventQueue<State>>,
214213
surface: &'a wl_surface::WlSurface,
215214
front: &'a mut WaylandBuffer,
216-
back: BorrowStack<'a, WaylandBuffer, [u32]>,
215+
back: &'a mut WaylandBuffer,
217216
width: i32,
218217
height: i32,
219218
age: u8,
@@ -230,7 +229,7 @@ impl BufferInterface for BufferImpl<'_> {
230229

231230
#[inline]
232231
fn pixels_mut(&mut self) -> &mut [u32] {
233-
self.back.member_mut()
232+
self.back.mapped_mut()
234233
}
235234

236235
fn age(&self) -> u8 {
@@ -244,14 +243,12 @@ impl BufferInterface for BufferImpl<'_> {
244243
.unwrap_or_else(|x| x.into_inner())
245244
.dispatch_pending(&mut State);
246245

247-
let back = self.back.into_container();
248-
249246
// Swap front and back buffer
250-
std::mem::swap(self.front, back);
247+
std::mem::swap(self.front, self.back);
251248

252249
self.front.age = 1;
253-
if back.age != 0 {
254-
back.age += 1;
250+
if self.back.age != 0 {
251+
self.back.age += 1;
255252
}
256253

257254
self.front.attach(self.surface);

0 commit comments

Comments
 (0)