pub struct DisplayBuffer<'t, FieldCount>where
FieldCount: NoFields,{
pub columns: u32,
pub lines: u32,
/* private fields */
}Expand description
DisplayBuffer
Contains either one or two fields. In case of progressive video, a field is just the same as the whole frame. In case of interlaced, it’s the image from either the odd or even lines.
Fields§
§columns: u32The number of pixels horizontally
lines: u32The number of pixels vertically
Trait Implementations§
Source§impl Canvas for DisplayBuffer<'_, OneField>
impl Canvas for DisplayBuffer<'_, OneField>
Source§fn get_line_mut(&mut self, y: usize) -> &mut [u32]
fn get_line_mut(&mut self, y: usize) -> &mut [u32]
Gives you a mutable slice containing pixel data for a specific line
Note: The last word of this slice is never fully used (either partially or not at all) and you can write anything you like there.
Source§fn get_line(&mut self, y: usize) -> &[u32]
fn get_line(&mut self, y: usize) -> &[u32]
Gives you a slice containing pixel data for a specific line
Note: The last word of this slice is never fully used (either partially or not at all)
Source§fn buffer(&self) -> &[u32]
fn buffer(&self) -> &[u32]
Reference to the underlying buffer.
For more info, see DisplayBuffer::buffer_mut
Source§unsafe fn buffer_mut(&mut self) -> &mut [u32]
unsafe fn buffer_mut(&mut self) -> &mut [u32]
Mutable reference to the underlying buffer
§Safety
Be aware that there is more than just display data in the given slice.
If you change non-pixel data in this buffer, the PIO state-machine can (and probably will) start to behave wrong and hang.
It is advised to manipulate the DisplayBuffer with functions like DisplayBuffer::get_line_mut
fn width(&self) -> u32
fn height(&self) -> u32
fn set_pixel(&mut self, x: usize, y: usize, value: bool)
fn get_pixel(&self, x: usize, y: usize) -> bool
fn fill(&mut self, value: bool)
Source§impl Canvas for DisplayBuffer<'_, TwoFields>
impl Canvas for DisplayBuffer<'_, TwoFields>
Source§fn get_line_mut(&mut self, y: usize) -> &mut [u32]
fn get_line_mut(&mut self, y: usize) -> &mut [u32]
Gives you a mutable slice containing pixel data for a specific line
Note: The last word of this slice is never fully used (either partially or not at all), and you can write anything you like there.
Source§fn get_line(&mut self, y: usize) -> &[u32]
fn get_line(&mut self, y: usize) -> &[u32]
Gives you a slice containing pixel data for a specific line
Note: The last word of this slice is never fully used (either partially or not at all)
Source§fn buffer(&self) -> &[u32]
fn buffer(&self) -> &[u32]
Reference to the underlying buffer.
For more info, see DisplayBuffer::buffer_mut
Source§unsafe fn buffer_mut(&mut self) -> &mut [u32]
unsafe fn buffer_mut(&mut self) -> &mut [u32]
Mutable reference to the underlying buffer
§Safety
Be aware that there is more than just display data in the given slice.
If you change non-pixel data in this buffer, the PIO state-machine can (and probably will) start to behave wrong and hang.
It is advised to manipulate the DisplayBuffer with functions like DisplayBuffer::get_line_mut
fn width(&self) -> u32
fn height(&self) -> u32
fn set_pixel(&mut self, x: usize, y: usize, value: bool)
fn get_pixel(&self, x: usize, y: usize) -> bool
fn fill(&mut self, value: bool)
Auto Trait Implementations§
impl<'t, FieldCount> Freeze for DisplayBuffer<'t, FieldCount>
impl<'t, FieldCount> RefUnwindSafe for DisplayBuffer<'t, FieldCount>where
FieldCount: RefUnwindSafe,
impl<'t, FieldCount> Send for DisplayBuffer<'t, FieldCount>where
FieldCount: Send,
impl<'t, FieldCount> Sync for DisplayBuffer<'t, FieldCount>where
FieldCount: Sync,
impl<'t, FieldCount> Unpin for DisplayBuffer<'t, FieldCount>where
FieldCount: Unpin,
impl<'t, FieldCount> !UnwindSafe for DisplayBuffer<'t, FieldCount>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more