Loading [MathJax]/extensions/tex2jax.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
GDTransform.h
Go to the documentation of this file.
1#ifndef _DOLPHIN_GD_TRANSFORM_H_
2#define _DOLPHIN_GD_TRANSFORM_H_
3
4#include <dolphin/types.h>
5#include <dolphin/gx/GXEnum.h>
6#include <dolphin/mtx.h>
7
8#ifdef __cplusplus
9extern "C" {
10#endif
11
12#define CP_MTX_REG_A_ID 0x30
13#define CP_MTX_REG_B_ID 0x40
14
15#define XF_REG_MATRIXINDEX0_ID 0x1018
16#define XF_REG_MATRIXINDEX1_ID 0x1019
17#define XF_REG_PROJECTIONA_ID 0x1020
18#define XF_REG_PROJECTIONB_ID 0x1021
19#define XF_REG_PROJECTIONC_ID 0x1022
20#define XF_REG_PROJECTIOND_ID 0x1023
21#define XF_REG_PROJECTIONE_ID 0x1024
22#define XF_REG_PROJECTIONF_ID 0x1025
23#define XF_REG_PROJECTORTHO_ID 0x1026
24
25#define CP_MTX_REG_A(pn, t0, t1, t2, t3) \
26 ( \
27 (u32)(pn) << 0 | \
28 (u32)(t0) << 6 | \
29 (u32)(t1) << 12 | \
30 (u32)(t2) << 18 | \
31 (u32)(t3) << 24 \
32 )
33
34#define CP_MTX_REG_B(t4, t5, t6, t7) \
35 ( \
36 (u32)(t4) << 0 | \
37 (u32)(t5) << 6 | \
38 (u32)(t6) << 12 | \
39 (u32)(t7) << 18 \
40 )
41
42void GDLoadPosMtxImm(const Mtx mtx, u32 id);
43void GDLoadPosMtxIndx(u16 mtx_indx, u32 id);
44void GDLoadNrmMtxImm(const Mtx mtx, u32 id);
45void GDLoadNrmMtxImm3x3(const f32 mtx[3][3], u32 id);
46void GDLoadNrmMtxIndx3x3(u16 mtx_indx, u32 id);
47void GDLoadTexMtxImm(const Mtx mtx, u32 id, GXTexMtxType type);
48void GDLoadTexMtxIndx(u16 mtx_indx, u32 id, GXTexMtxType type);
49void GDSetCurrentMtx(u32 pn, u32 t0, u32 t1, u32 t2, u32 t3, u32 t4, u32 t5, u32 t6, u32 t7);
51
52#ifdef __cplusplus
53}
54#endif
55
56#endif
void GDLoadPosMtxIndx(u16 mtx_indx, u32 id)
Definition GDTransform.c:20
void GDLoadPosMtxImm(const Mtx mtx, u32 id)
Definition GDTransform.c:4
void GDLoadTexMtxIndx(u16 mtx_indx, u32 id, GXTexMtxType type)
Definition GDTransform.c:85
void GDLoadNrmMtxIndx3x3(u16 mtx_indx, u32 id)
Definition GDTransform.c:50
void GDLoadNrmMtxImm(const Mtx mtx, u32 id)
Definition GDTransform.c:24
void GDSetProjection(const Mtx44 mtx, GXProjectionType type)
Definition GDTransform.c:115
void GDLoadTexMtxImm(const Mtx mtx, u32 id, GXTexMtxType type)
Definition GDTransform.c:54
void GDSetCurrentMtx(u32 pn, u32 t0, u32 t1, u32 t2, u32 t3, u32 t4, u32 t5, u32 t6, u32 t7)
Definition GDTransform.c:101
void GDLoadNrmMtxImm3x3(const f32 mtx[3][3], u32 id)
Definition GDTransform.c:37
enum _GXProjectionType GXProjectionType
enum _GXTexMtxType GXTexMtxType
static Mtx mtx[10]
Definition c_lib.cpp:512
static u32 t0
Definition dsp_task.c:8
static u32 t1
Definition dsp_task.c:8
static u32 t2
Definition dsp_task.c:8
f32 Mtx44[4][4]
Definition mtx.h:25
f32 Mtx[3][4]
Definition mtx.h:22
unsigned long u32
Definition types.h:9
float f32
Definition types.h:22
unsigned short int u16
Definition types.h:7