Skip to main content
← PSoXide SDK guides and examples · SDK f2fec1c301f1 · All Cargo features enabled; check feature gates before use.

BlendMode

Enum BlendMode 

Source
pub enum BlendMode {
    Opaque,
    Average,
    Add,
    Subtract,
    AddQuarter,
}
Expand description

PS1 semi-transparency mode.

The four non-opaque variants map directly to GP0(E1) / tpage bits 5..6. Opaque means the primitive command’s semi-transparent bit is kept clear, so the destination pixel is overwritten.

Variants§

§

Opaque

Overwrite destination pixels.

§

Average

(background + foreground) / 2.

§

Add

background + foreground, clamped per channel.

§

Subtract

background - foreground, clamped per channel.

§

AddQuarter

background + foreground / 4, clamped per channel.

Implementations§

Source§

impl BlendMode

Source

pub const fn from_texture_page_bits(bits: u8) -> Self

Decode the two tpage semi-transparency bits.

Hardware tpage bits do not encode “opaque”; the primitive opcode decides whether blending is active. This therefore returns one of the four blending variants.

Source

pub const fn from_tpage_bits(bits: u8) -> Self

👎Deprecated:

renamed to from_texture_page_bits

Source

pub const fn texture_page_bits(self) -> u8

Encode as GP0(E1) / tpage bits 5..6.

Opaque uses the common average-blend encoding because the primitive semi-transparent bit will be clear.

Source

pub const fn is_translucent(self) -> bool

True when a primitive using this material should set its semi-transparent command bit.

Trait Implementations§

Source§

impl Clone for BlendMode

Source§

fn clone(&self) -> BlendMode

Returns a duplicate of the value. Read more
1.0.0§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for BlendMode

Source§

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

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

impl PartialEq for BlendMode

Source§

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

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

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 BlendMode

Source§

impl Eq for BlendMode

Source§

impl StructuralPartialEq for BlendMode

Auto Trait Implementations§

§

impl Freeze for BlendMode

§

impl RefUnwindSafe for BlendMode

§

impl Send for BlendMode

§

impl Sync for BlendMode

§

impl Unpin for BlendMode

§

impl UnsafeUnpin for BlendMode

§

impl UnwindSafe for BlendMode

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

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
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

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

§

impl<T, U> TryFrom<U> for T
where 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>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where 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>

Performs the conversion.