Why use it
Template dispatch is resolved at compile time and normally adds no runtime indirection.
PSYQO SDK
Function template · 2 overloads
Writes a 32-bits value to a GTE register from memory.
template <Register reg, Safety safety = Safe> static inline void write(const uint32_t* ptr)Writes a 32-bits value to a GTE register from memory.
| Parameter | Type | Meaning |
|---|---|---|
ptr | const uint32_t * | The pointer to the value to write. |
Returns: Nothing (void).
#include "psyqo/gte-registers.hh"
// Replace these template arguments with types or values accepted by the declaration:
// reg, safety
// Assume these named values have been initialized with valid data:
// const uint32_t * ptr
psyqo::GTE::write<reg, safety>(ptr);Template dispatch is resolved at compile time and normally adds no runtime indirection.
Every instantiated type must satisfy the header's compile-time requirements; extra instantiations can increase code size. Pointer/reference arguments are borrowed unless the source contract says otherwise; keep them valid for the complete operation and never assume null is accepted.
template <Register reg, Safety safety = Safe> static inline void write(uint32_t value)Write a 32-bits value to a GTE register.
| Parameter | Type | Meaning |
|---|---|---|
value | uint32_t | The value to write. |
Returns: Nothing (void).
#include "psyqo/gte-registers.hh"
// Replace these template arguments with types or values accepted by the declaration:
// reg, safety
// Assume these named values have been initialized with valid data:
// uint32_t value
psyqo::GTE::write<reg, safety>(value);Template dispatch is resolved at compile time and normally adds no runtime indirection.
Every instantiated type must satisfy the header's compile-time requirements; extra instantiations can increase code size.
adler32Computes the adler32 checksum of a buffer.Functionadler32_bytesComputes the adler32 checksum of a buffer, only reading bytes.Functionadler32_wordsComputes the adler32 checksum of a buffer, optimized for words.Functionavsz3AVSZ3 - Average of three Z values (for Triangles) zsf3 * (sz0 + sz1 + sz2) -> otz 5 cyclesFunctionavsz4AVSZ4 - Average of four Z values (for Quads) zsf4 * (sz0 + sz1 + sz2 + sz4) -> otz 6 cyclesFunctionbtoiPerforms `btoi` as part of the msf module.FunctionclearClear a GTE register.Function templatecubicCubic Bezier curve helper function.FunctiondDivPerforms `d div` as part of the fixed point module.FunctioniDivPerforms `i div` as part of the fixed point module.Functionoperator""_fpUser-defined literal for constructing a 20.12 fixed point number.FunctionprintIntPerforms `print int` as part of the fixed point module.Function