2025-10-19 10:30:49 -07:00
|
|
|
#ifndef _DOLPHIN_GF_GFGEOMETRY_H_
|
|
|
|
|
#define _DOLPHIN_GF_GFGEOMETRY_H_
|
2021-03-28 22:49:05 +02:00
|
|
|
|
2025-10-19 10:30:49 -07:00
|
|
|
#ifdef __REVOLUTION_SDK__
|
|
|
|
|
#include <revolution/gf/GFGeometry.h>
|
|
|
|
|
#else
|
2025-02-10 11:20:42 -08:00
|
|
|
#include <dolphin/gx.h>
|
2023-06-30 19:29:50 +03:00
|
|
|
|
2025-02-10 11:20:42 -08:00
|
|
|
#define GF_GEN_MODE(nTexGens, nChans, nTevs, cm, nInds) \
|
|
|
|
|
( \
|
|
|
|
|
(u32)(nTexGens) << 0 | \
|
|
|
|
|
(u32)(nChans) << 4 | \
|
|
|
|
|
(u32)(nTevs) << 10 | \
|
|
|
|
|
(u32)(cm) << 14 | \
|
|
|
|
|
(u32)(nInds) << 16 \
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
static inline void GFWrite_u8(u8 data) {
|
|
|
|
|
GXCmd1u8(data);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static inline void GFWrite_u32(u32 data) {
|
|
|
|
|
GXCmd1u32(data);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static inline void GFWrite_u16(u16 data) {
|
|
|
|
|
GXCmd1u16(data);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static inline void GFWriteBPCmd(u32 regval) {
|
|
|
|
|
GFWrite_u8(GX_LOAD_BP_REG);
|
|
|
|
|
GFWrite_u32(regval);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static inline void GFWriteXFCmd(u16 addr, u32 val) {
|
|
|
|
|
GFWrite_u8(GX_LOAD_XF_REG);
|
|
|
|
|
GFWrite_u16(0);
|
|
|
|
|
GFWrite_u16(addr);
|
|
|
|
|
GFWrite_u32(val);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void GFSetGenMode2(u8 nTexGens, u8 nChans, u8 nTevs, u8 nInds, GXCullMode cm);
|
2021-03-28 22:49:05 +02:00
|
|
|
|
2025-10-19 10:30:49 -07:00
|
|
|
#endif
|
|
|
|
|
#endif /* _DOLPHIN_GF_GFGEOMETRY_H_ */
|