[−][src]Struct vga_framebuffer::FrameBuffer
This structure represents the framebuffer - a 2D array of monochome pixels.
The framebuffer is stored as an array of horizontal lines, where each line is comprised of 8 bit words. This suits our timing needs as although the SPI peripheral on an LM4F120 which can emit 16 bits at a time, 8 proves easier to work with.
Methods
impl<T> FrameBuffer<T> where
T: Hardware,
[src]
T: Hardware,
pub fn new() -> FrameBuffer<T>
pub fn init(&mut self, hw: T)
[src]
Initialise the hardware (by calling the configure
callback).
pub fn borrow_hw_mut(&mut self) -> Option<&mut T>
[src]
pub fn borrow_hw(&self) -> Option<&T>
[src]
pub fn set_cursor_visible(&mut self, visible: bool)
[src]
pub fn mode2(&mut self, buffer: &[u8], start_line: usize)
[src]
Enable mode2 - a 1-bit-per-pixel graphical buffer which is coloured according to the colour attributes for the matching text cells. Supply a u8 slice that is some multiple of MODE0_USABLE_HORIZONTAL_OCTETS long. The buffer will be line-doubled and so can be up to 288 lines long.
pub fn mode2_shift(&mut self, new_start_line: usize)
[src]
pub fn mode2_release(&mut self)
[src]
Releases the memory for mode2. The rendering code may keep reading this memory buffer up until the end of the frame.
pub fn map_line(&mut self, visible_line: u16, rendered_line: u16)
[src]
pub fn frame(&self) -> usize
[src]
Returns the current frame number.
pub fn line(&self) -> Option<usize>
[src]
Returns the current visible line number or None in the blanking period.
pub fn total_line(&self) -> u64
[src]
Returns the number of lines since startup.
pub fn isr_sol(&mut self)
[src]
Call this at the start of every line.
pub fn set_custom_font(&mut self, new_font: Option<&'static [u8]>)
[src]
Change the current font
pub fn clear(&mut self)
[src]
Clears the screen and resets the cursor to 0,0.
pub fn write_glyph_at(&mut self, glyph: Char, pos: Position, attr: Option<Attr>)
[src]
Puts a glyph on screen at the specified place
pub fn read_glyph_at(&mut self, pos: Position) -> Option<(Char, Attr)>
[src]
Read a glyph on screen at the specified place
pub fn write_glyph(&mut self, glyph: Char, attr: Option<Attr>)
[src]
Puts a glyph on screen at the current position.
pub fn write_char(&mut self, ch: u8, attr: Option<Attr>)
[src]
Write a single Unicode char to the screen at the current position.
pub fn set_attr_at(&mut self, pos: Position, attr: Attr)
[src]
Changes the attribute for a given position, leaving the glyph unchanged.
pub fn set_line_mode_at(&mut self, row: Row, double_height: DoubleHeightMode)
[src]
Change font height for a given line.
pub fn set_line_mode(&mut self, double_height: DoubleHeightMode)
[src]
Change font height for the current line.
pub fn set_attr(&mut self, attr: Attr) -> Attr
[src]
Change the current character attribute
pub fn get_attr(&mut self) -> Attr
[src]
Get the current character attribute
Trait Implementations
impl<T> Write for FrameBuffer<T> where
T: Hardware,
[src]
T: Hardware,
fn write_str(&mut self, s: &str) -> Result
[src]
fn write_char(&mut self, c: char) -> Result<(), Error>
1.1.0[src]
Writes a [char
] into this writer, returning whether the write succeeded. Read more
fn write_fmt(&mut self, args: Arguments) -> Result<(), Error>
1.0.0[src]
Glue for usage of the [write!
] macro with implementors of this trait. Read more
impl<T> BaseConsole for FrameBuffer<T> where
T: Hardware,
[src]
T: Hardware,
type Error = ()
fn get_width(&self) -> Col
[src]
Gets the last col on the screen.
fn get_height(&self) -> Row
[src]
Gets the last row on the screen.
fn set_col(&mut self, col: Col) -> Result<(), Self::Error>
[src]
Set the horizontal position for the next text output.
fn set_row(&mut self, row: Row) -> Result<(), Self::Error>
[src]
Set the vertical position for the next text output.
fn set_pos(&mut self, pos: Position) -> Result<(), Self::Error>
[src]
Set the horizontal and vertical position for the next text output.
fn get_pos(&self) -> Position
[src]
Get the current screen position.
fn set_control_char_mode(&mut self, mode: ControlCharMode)
[src]
Set the control char mode
fn get_control_char_mode(&self) -> ControlCharMode
[src]
Get the current control char mode
fn set_escape_char_mode(&mut self, mode: EscapeCharMode)
[src]
Set the escape char mode
fn get_escape_char_mode(&self) -> EscapeCharMode
[src]
Get the current escape char mode
fn scroll_screen(&mut self) -> Result<(), Self::Error>
[src]
Called when the screen needs to scroll up one row.
fn set_pos_unbounded(&mut self, pos: Position)
[src]
Set the horizontal and vertical position for the next text output. Don't bounds check the value, we've already done it. Read more
fn move_cursor_right(&mut self) -> Result<(), Self::Error>
[src]
Move the current cursor right one position. Wraps at the end of the line. Returns Ok(true) if the screen needs to scroll, or Ok(false) if it does not. Read more
impl<T> AsciiConsole for FrameBuffer<T> where
T: Hardware,
[src]
T: Hardware,
fn handle_escape(&mut self, escaped_char: u8) -> bool
[src]
Handle an escape char. We take a, b, c, d, e, f, g, h as being a background colour and A..H as being a foreground colour. 'Z' means clear the screen.
fn write_char_at(&mut self, ch: u8, pos: Position) -> Result<(), Self::Error>
[src]
Write a single Unicode char to the screen at the given position without updating the current position.
fn write_string(&mut self, s: &[u8]) -> Result<(), Self::Error>
[src]
Write an 8-bit string to the screen at the given position. Updates the current position to the end of the string. Strings will wrap across the end of the screen and scroll the screen if they reach the bottom. Read more
fn write_character(&mut self, ch: u8) -> Result<(), Self::Error>
[src]
Write a single 8-bit char to the screen at the current position.
fn write_string_at(
&mut self,
s: &[u8],
pos: Position
) -> Result<(), Self::Error>
[src]
&mut self,
s: &[u8],
pos: Position
) -> Result<(), Self::Error>
Write an 8-bit string to the screen at the given position. Updates the current position to the end of the string. Strings will wrap across the end of the screen and scroll the screen if they reach the bottom. Read more
fn is_special(&self, ch: u8) -> Option<SpecialChar>
[src]
Check if an 8-bit char is special
Auto Trait Implementations
impl<T> Unpin for FrameBuffer<T> where
T: Unpin,
T: Unpin,
impl<T> !Sync for FrameBuffer<T>
impl<T> !Send for FrameBuffer<T>
Blanket Implementations
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,