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

ClassicTriTexturedGouraud

Struct ClassicTriTexturedGouraud 

Source
#[repr(C, align(4))]
pub struct ClassicTriTexturedGouraud { pub tag: u32, pub color0_cmd: u32, pub v0: u32, pub uv0_clut: u32, pub color1: u32, pub v1: u32, pub uv1_tpage: u32, pub color2: u32, pub v2: u32, pub uv2: u32, }
Expand description

Classic textured Gouraud triangle without an inline GP0(E2) texture-window command. This is the compact GP0(34h) packet used by renderers that keep a single texture-window state for the whole pass. 10 words (tag + 9 data).

Fields§

§tag: u32

Staged OT tag or final DMA linkage.

§color0_cmd: u32

GP0(34h) plus vertex-zero RGB.

§v0: u32

Vertex-zero screen coordinate.

§uv0_clut: u32

Vertex-zero UV and CLUT.

§color1: u32

Vertex-one RGB.

§v1: u32

Vertex-one screen coordinate.

§uv1_tpage: u32

Vertex-one UV and tpage.

§color2: u32

Vertex-two RGB.

§v2: u32

Vertex-two screen coordinate.

§uv2: u32

Vertex-two UV.

Implementations§

Source§

impl ClassicTriTexturedGouraud

Source

pub const WORDS: u8 = 9

Data-word count after the tag.

Source

pub const fn with_staged_slot( verts: [(i16, i16); 3], uv_words: [u16; 3], colors: [u32; 3], clut: u16, tpage: u16, ot_slot: u16, ) -> Self

Build a compact packet whose tag temporarily carries ot_slot for a later crate::ot::OrderingTable::insert_tagged_packet_stream_unchecked pass.

Source

pub const fn with_staged_slot_prepacked_material( verts: [(i16, i16); 3], uv_words: [u16; 3], colors: [u32; 3], clut_high_word: u32, tpage_high_word: u32, ot_slot: u16, ) -> Self

Build a staged compact packet from CLUT and tpage words that have already been shifted into their GP0 high-halfword positions.

Source

pub const fn with_staged_slot_prepacked_colors( verts: [(i16, i16); 3], uv_words: [u16; 3], colors: [u32; 3], clut_high_word: u32, tpage_high_word: u32, ot_slot: u16, ) -> Self

Build a staged packet without masking the supplied packet RGB words.

Every color word must have its high byte clear, and clut_high_word and tpage_high_word must hold only their high halfwords; debug builds assert both. A word that breaks this changes what the GPU draws, not memory, so the constructor is safe.

Source

pub const unsafe fn with_staged_slot_prepacked_unchecked( verts: [(i16, i16); 3], uv_words: [u16; 3], colors: [u32; 3], clut_high_word: u32, tpage_high_word: u32, ot_slot: u16, ) -> Self

👎Deprecated:

renamed to with_staged_slot_prepacked_colors, which is safe

Renamed to Self::with_staged_slot_prepacked_colors, which is safe.

§Safety

Nothing beyond that function’s preconditions; it stays unsafe so existing unsafe blocks keep compiling without a warning.

Trait Implementations§

Source§

impl Clone for ClassicTriTexturedGouraud

Source§

fn clone(&self) -> ClassicTriTexturedGouraud

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 ClassicTriTexturedGouraud

Source§

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

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

impl GpuPacket for ClassicTriTexturedGouraud

Source§

const WORDS: u8 = ClassicTriTexturedGouraud::WORDS

Payload words after the tag.
Source§

impl Hash for ClassicTriTexturedGouraud

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given [Hasher]. Read more
1.3.0§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given [Hasher]. Read more
Source§

impl PartialEq for ClassicTriTexturedGouraud

Source§

fn eq(&self, other: &ClassicTriTexturedGouraud) -> 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 ClassicTriTexturedGouraud

Source§

impl Eq for ClassicTriTexturedGouraud

Source§

impl StructuralPartialEq for ClassicTriTexturedGouraud

Auto Trait Implementations§

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.