Why use it
Template dispatch is resolved at compile time and normally adds no runtime indirection.
PSYQO SDK
Function · 5 overloads
Reads read as part of Geometry Transformation Engine math and register operations.
template <> [[deprecated("Use the reference version instead")]] inline void read<PseudoRegister::LV>(Vec3* ptr)Reads read as part of Geometry Transformation Engine math and register operations.
| Parameter | Type | Meaning |
|---|---|---|
ptr | Vec3 * | Value supplied for ptr. Keep referenced or pointed-to data valid for the complete call. |
Returns: Nothing (void).
#include "psyqo/gte-registers.hh"
// Assume these named values have been initialized with valid data:
// Vec3 * ptr
psyqo::GTE::read(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 <> inline void read<PseudoRegister::LV>(Vec3& ptr)Reads read as part of Geometry Transformation Engine math and register operations.
| Parameter | Type | Meaning |
|---|---|---|
ptr | Vec3 & | Value supplied for ptr. Keep referenced or pointed-to data valid for the complete call. |
Returns: Nothing (void).
#include "psyqo/gte-registers.hh"
// Assume these named values have been initialized with valid data:
// Vec3 & ptr
psyqo::GTE::read(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 <PseudoRegister reg, bool valid = false> [[deprecated("Use the reference version instead")]] static inline void read(Vec3* ptr)Reads read as part of Geometry Transformation Engine math and register operations.
| Parameter | Type | Meaning |
|---|---|---|
ptr | Vec3 * | Value supplied for ptr. Keep referenced or pointed-to data valid for the complete call. |
Returns: Nothing (void).
#include "psyqo/gte-registers.hh"
// Replace these template arguments with types or values accepted by the declaration:
// reg, valid
// Assume these named values have been initialized with valid data:
// Vec3 * ptr
psyqo::GTE::read<reg, valid>(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 <PseudoRegister reg, bool valid = false> static inline void read(Vec3& vec)Reads read as part of Geometry Transformation Engine math and register operations.
| Parameter | Type | Meaning |
|---|---|---|
vec | Vec3 & | Value supplied for vec. Keep referenced or pointed-to data valid for the complete call. |
Returns: Nothing (void).
#include "psyqo/gte-registers.hh"
// Replace these template arguments with types or values accepted by the declaration:
// reg, valid
// Assume these named values have been initialized with valid data:
// Vec3 & vec
psyqo::GTE::read<reg, valid>(vec);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> static inline void read(uint32_t* ptr)Read a 32-bits value from a GTE register to memory.
| Parameter | Type | Meaning |
|---|---|---|
ptr | uint32_t * | The pointer to the memory location to write to. |
Returns: Nothing (void).
#include "psyqo/gte-registers.hh"
// Replace these template arguments with types or values accepted by the declaration:
// reg
// Assume these named values have been initialized with valid data:
// uint32_t * ptr
psyqo::GTE::read<reg>(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.
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