[][src]Struct vga_framebuffer::FrameBuffer

#[repr(C)]
pub struct FrameBuffer<T> where
    T: Hardware
{ /* fields omitted */ }

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]

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]

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]

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]

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]

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

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]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]