- pub fn inner(&self) -> &[u16] {
- unsafe {
- core::slice::from_raw_parts(self.buf.as_ptr().cast::<u16>(), (self.width() * self.height()) as usize)
+ pub fn inner(&mut self) -> Option<&[u16]> {
+ if self.dirty {
+ self.dirty = false;
+ Some(unsafe {
+ core::slice::from_raw_parts(
+ self.buf.as_ptr().cast::<u16>(),
+ (self.width() * self.height()) as usize,
+ )
+ })
+ } else {
+ None