DrawingStream

Struct DrawingStream 

Source
pub struct DrawingStream { /* private fields */ }
Expand description

Byte drawing stream of GameBoy.

It simillars with crate::io::GbStream. But there are some significant differences.

  1. DrawingStream uses APA mode drawing library of GBDK. this causes many side effects, For example, if you try to use DrawingStream inside a VBL interrupt, it will have unexpected result. For more detail, please refer GBDK Docs

  2. Unable to change line with \n, this means, when you want to make a new line, you should use the DrawingStream::cursor function.

  3. DrawingStream can also draw shapes in addition to texts.

§Examples

let mut s = unsafe {DrawingStream::new()}; // prints to second line.
write!(s, "Hello, APA!");

Implementations§

Source§

impl DrawingStream

Source

pub unsafe fn new() -> Self

Creates new DrawingStream.

Enable APA mode to draw texts.

§Safety

This will break crate::io::GbStream.

After this function, you cannot use GbStream dependent functions such as println!.

Source

pub fn set_style(&self, style: DrawingStyle)

Apply drawing style.

Internally, call color function of GBDK.

Source

pub fn cursor(&self, x: u8, y: u8)

Set cursor of DrawingStream.

§Panics

Panics if coordinate parameter out of bounds.

§Safety

Because of the bound check, it is guaranteed to move the cursor to a valid range.

§Examples
let mut s = unsafe {DrawingStream::new()};
DrawingStream::cursor(0, 1); //prints to second line.
write!(s, "Hello, Cursor!");
Source

pub fn draw_point(&self, (x, y): (u8, u8))

Draw a point to screen.

§Panics

Panics if coordinates out of bounds.

Source

pub fn draw_line(&self, (x1, y1): (u8, u8), (x2, y2): (u8, u8))

Draw a line to screen.

§Panics

Panics if coordinates out of bounds.

Source

pub fn draw_box(&self, (x1, y1): (u8, u8), (x2, y2): (u8, u8), fill: bool)

Draw a box to screen.

§Panics

Panics if coordinates out of bounds.

Source

pub fn draw_circle(&self, (x, y): (u8, u8), radius: u8, fill: bool)

Draw a circle to screen.

§Panics

Panics if coordinates out of bounds.

Source

pub fn write_byte(&mut self, b: u8) -> Result<(), Error>

Writes a byte into this writer, returning whether the write succeeded.

write_char assumes that the input is valid Unicode character. However, GBDK maps one byte to one character or symbol.

Therefore, write_byte is recommended when you want to print one character to the GameBoy.

§Errors

This function will return an instance of Error on error.

Trait Implementations§

Source§

impl Write for DrawingStream

Source§

fn write_str(&mut self, s: &str) -> Result

Writes a string slice into this writer, returning whether the write succeeded. Read more
1.1.0 · Source§

fn write_char(&mut self, c: char) -> Result<(), Error>

Writes a char into this writer, returning whether the write succeeded. Read more
1.0.0 · Source§

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Glue for usage of the write! macro with implementors of this trait. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.