@@ -87,9 +87,6 @@ struct Buffers {
87
87
88
88
/// Whether to use the first buffer or the second buffer as the front buffer.
89
89
first_is_front : bool ,
90
-
91
- /// A buffer full of zeroes.
92
- zeroes : Box < [ u32 ] > ,
93
90
}
94
91
95
92
/// The buffer implementation.
@@ -106,9 +103,6 @@ pub(crate) struct BufferImpl<'a, D: ?Sized, W: ?Sized> {
106
103
/// This is used to change the front buffer.
107
104
first_is_front : & ' a mut bool ,
108
105
109
- /// Buffer full of zeroes.
110
- zeroes : & ' a [ u32 ] ,
111
-
112
106
/// The current size.
113
107
size : ( NonZeroU32 , NonZeroU32 ) ,
114
108
@@ -232,7 +226,6 @@ impl<D: HasDisplayHandle + ?Sized, W: HasWindowHandle> SurfaceInterface<D, W> fo
232
226
self . buffer = Some ( Buffers {
233
227
first_is_front : true ,
234
228
buffers : [ front_buffer, back_buffer] ,
235
- zeroes : vec ! [ 0 ; width. get( ) as usize * height. get( ) as usize ] . into_boxed_slice ( ) ,
236
229
} ) ;
237
230
238
231
Ok ( ( ) )
@@ -276,7 +269,6 @@ impl<D: HasDisplayHandle + ?Sized, W: HasWindowHandle> SurfaceInterface<D, W> fo
276
269
front_fb,
277
270
crtc_handle : self . crtc . handle ( ) ,
278
271
display : & self . display ,
279
- zeroes : & set. zeroes ,
280
272
front_age,
281
273
back_age,
282
274
_window : PhantomData ,
@@ -302,9 +294,7 @@ impl<D: ?Sized, W: ?Sized> Drop for KmsImpl<D, W> {
302
294
impl < D : ?Sized , W : ?Sized > BufferInterface for BufferImpl < ' _ , D , W > {
303
295
#[ inline]
304
296
fn pixels ( & self ) -> & [ u32 ] {
305
- // drm-rs doesn't let us have the immutable reference... so just use a bunch of zeroes.
306
- // TODO: There has to be a better way of doing this!
307
- self . zeroes
297
+ bytemuck:: cast_slice ( self . mapping . as_ref ( ) )
308
298
}
309
299
310
300
#[ inline]
0 commit comments