Struct DisplayStatusValue

Source
pub struct DisplayStatusValue(/* private fields */);
Expand description

Relates to the status of the display.

When writing this value to DISPSTAT, the vblank, hblank, and vcounter settings aren’t actually written. They can still be modified on this type if you want to set up a specific value and then check for equality or something.

Setting the interrupt related flags is dangerous if your interrupt handler isn’t set up to handle the appropriate types of interrupts. Even if you set for interrupt types to occur here they won’t fire unless you also enable them in the IME register, and of course you must have interrupts enabled overall using the IE register.

  • vblank: Set during VCOUNT lines 160 to 226, but not 227.
  • hblank: Set when you’re in hblank, after the current line has completed drawing. It takes 960 cycles to draw a line, but GBATEK says that this is off for 1006 cycles per line.
  • vcounter: Set if the current VCOUNT value matches the vcount_trigger value.
  • vblank_irq: If an interrupt should be triggered at start of vblank.
  • hblank_irq: If an interrupt should be triggered at start of hblank.
  • vcounter_irq: If an interrupt should be triggered when VCOUNT matches the vcount_trigger value.
  • vcount_trigger: The scanline that you want to use for vcount interrupts and the vcounter flag.

Implementations§

Source§

impl DisplayStatusValue

Source

pub const fn new() -> Self

Source

pub const fn vblank(self) -> bool

Source

pub const fn with_vblank(self, b: bool) -> Self

Source

pub fn set_vblank(&mut self, b: bool)

Source

pub const fn hblank(self) -> bool

Source

pub const fn with_hblank(self, b: bool) -> Self

Source

pub fn set_hblank(&mut self, b: bool)

Source

pub const fn vcounter(self) -> bool

Source

pub const fn with_vcounter(self, b: bool) -> Self

Source

pub fn set_vcounter(&mut self, b: bool)

Source

pub const fn vblank_irq(self) -> bool

Source

pub const fn with_vblank_irq(self, b: bool) -> Self

Source

pub fn set_vblank_irq(&mut self, b: bool)

Source

pub const fn hblank_irq(self) -> bool

Source

pub const fn with_hblank_irq(self, b: bool) -> Self

Source

pub fn set_hblank_irq(&mut self, b: bool)

Source

pub const fn vcounter_irq(self) -> bool

Source

pub const fn with_vcounter_irq(self, b: bool) -> Self

Source

pub fn set_vcounter_irq(&mut self, b: bool)

Source

pub const fn vcount_trigger(self) -> u16

Source

pub const fn with_vcount_trigger(self, u: u16) -> Self

Source

pub fn set_vcount_trigger(&mut self, u: u16)

Trait Implementations§

Source§

impl Clone for DisplayStatusValue

Source§

fn clone(&self) -> DisplayStatusValue

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DisplayStatusValue

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DisplayStatusValue

Source§

fn default() -> DisplayStatusValue

Returns the “default value” for a type. Read more
Source§

impl PartialEq for DisplayStatusValue

Source§

fn eq(&self, other: &DisplayStatusValue) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for DisplayStatusValue

Source§

impl Eq for DisplayStatusValue

Source§

impl StructuralPartialEq for DisplayStatusValue

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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.