SSBM Decomp
Toggle main menu visibility
Loading...
Searching...
No Matches
GXVert.h
Go to the documentation of this file.
1
#ifndef _DOLPHIN_GX_GXVERT_H_
2
#define _DOLPHIN_GX_GXVERT_H_
3
4
#include <
dolphin/types.h
>
5
6
#ifdef __cplusplus
7
extern
"C"
{
8
#endif
9
10
#define GXFIFO_ADDR 0xCC008000
11
12
typedef
union
13
{
14
u8
u8
;
15
u16
u16
;
16
u32
u32
;
17
u64
u64
;
18
s8
s8
;
19
s16
s16
;
20
s32
s32
;
21
s64
s64
;
22
f32
f32
;
23
f64
f64
;
24
}
PPCWGPipe
;
25
26
#if defined(__MWERKS__) && !defined(M2CTX)
27
volatile
PPCWGPipe
GXWGFifo
:
GXFIFO_ADDR
;
28
#else
29
#define GXWGFifo (*(volatile PPCWGPipe *)GXFIFO_ADDR)
30
#endif
31
32
#if DEBUG
33
34
// external functions
35
36
#define FUNC_1PARAM(name, T) void name##1##T(T x);
37
#define FUNC_2PARAM(name, T) void name##2##T(T x, T y);
38
#define FUNC_3PARAM(name, T) void name##3##T(T x, T y, T z);
39
#define FUNC_4PARAM(name, T) void name##4##T(T x, T y, T z, T w);
40
#define FUNC_INDEX8(name) void name##1x8(u8 x);
41
#define FUNC_INDEX16(name) void name##1x16(u16 x);
42
43
#else
44
45
// inline functions
46
47
#define FUNC_1PARAM(name, T) \
48
static inline void name##1##T(T x) { GXWGFifo.T = x; }
49
50
#define FUNC_2PARAM(name, T) \
51
static inline void name##2##T(T x, T y) { GXWGFifo.T = x; GXWGFifo.T = y; }
52
53
#define FUNC_3PARAM(name, T) \
54
static inline void name##3##T(T x, T y, T z) { GXWGFifo.T = x; GXWGFifo.T = y; GXWGFifo.T = z; }
55
56
#define FUNC_4PARAM(name, T) \
57
static inline void name##4##T(T x, T y, T z, T w) { GXWGFifo.T = x; GXWGFifo.T = y; GXWGFifo.T = z; GXWGFifo.T = w; }
58
59
#define FUNC_INDEX8(name) \
60
static inline void name##1x8(u8 x) { GXWGFifo.u8 = x; }
61
62
#define FUNC_INDEX16(name) \
63
static inline void name##1x16(u16 x) { GXWGFifo.u16 = x; }
64
65
#endif
66
67
// GXCmd
68
FUNC_1PARAM
(GXCmd,
u8
)
69
FUNC_1PARAM
(GXCmd,
u16
)
70
FUNC_1PARAM
(GXCmd,
u32
)
71
72
// GXParam
73
FUNC_1PARAM
(GXParam,
u8
)
74
FUNC_1PARAM
(GXParam,
u16
)
75
FUNC_1PARAM
(GXParam,
u32
)
76
FUNC_1PARAM
(GXParam,
s8
)
77
FUNC_1PARAM
(GXParam,
s16
)
78
FUNC_1PARAM
(GXParam,
s32
)
79
FUNC_1PARAM
(GXParam,
f32
)
80
FUNC_3PARAM
(GXParam,
f32
)
81
FUNC_4PARAM
(GXParam,
f32
)
82
83
// GXPosition
84
FUNC_3PARAM
(GXPosition,
f32
)
85
FUNC_3PARAM
(GXPosition,
u8
)
86
FUNC_3PARAM
(GXPosition,
s8
)
87
FUNC_3PARAM
(GXPosition,
u16
)
88
FUNC_3PARAM
(GXPosition,
s16
)
89
FUNC_2PARAM
(GXPosition,
f32
)
90
FUNC_2PARAM
(GXPosition,
u8
)
91
FUNC_2PARAM
(GXPosition,
s8
)
92
FUNC_2PARAM
(GXPosition,
u16
)
93
FUNC_2PARAM
(GXPosition,
s16
)
94
FUNC_INDEX16
(GXPosition)
95
FUNC_INDEX8
(GXPosition)
96
97
// GXNormal
98
FUNC_3PARAM
(GXNormal,
f32
)
99
FUNC_3PARAM
(GXNormal,
s16
)
100
FUNC_3PARAM
(GXNormal,
s8
)
101
FUNC_INDEX16
(GXNormal)
102
FUNC_INDEX8
(GXNormal)
103
104
// GXColor
105
FUNC_4PARAM
(
GXColor
,
u8
)
106
FUNC_1PARAM
(
GXColor
,
u32
)
107
FUNC_3PARAM
(
GXColor
,
u8
)
108
FUNC_1PARAM
(
GXColor
,
u16
)
109
FUNC_INDEX16
(
GXColor
)
110
FUNC_INDEX8
(
GXColor
)
111
112
// GXTexCoord
113
FUNC_2PARAM
(GXTexCoord,
f32
)
114
FUNC_2PARAM
(GXTexCoord,
s16
)
115
FUNC_2PARAM
(GXTexCoord,
u16
)
116
FUNC_2PARAM
(GXTexCoord,
s8
)
117
FUNC_2PARAM
(GXTexCoord,
u8
)
118
FUNC_1PARAM
(GXTexCoord,
f32
)
119
FUNC_1PARAM
(GXTexCoord,
s16
)
120
FUNC_1PARAM
(GXTexCoord,
u16
)
121
FUNC_1PARAM
(GXTexCoord,
s8
)
122
FUNC_1PARAM
(GXTexCoord,
u8
)
123
FUNC_INDEX16
(GXTexCoord)
124
FUNC_INDEX8
(GXTexCoord)
125
126
// GXMatrixIndex
127
FUNC_1PARAM
(GXMatrixIndex,
u8
)
128
129
#if !defined(M2CTX)
// undef not supported
130
#undef FUNC_1PARAM
131
#undef FUNC_2PARAM
132
#undef FUNC_3PARAM
133
#undef FUNC_4PARAM
134
#undef FUNC_INDEX8
135
#undef FUNC_INDEX16
136
#endif
137
138
#ifdef __cplusplus
139
}
140
#endif
141
142
#endif
FUNC_2PARAM
#define FUNC_2PARAM(name, T)
Definition
GXVert.h:50
FUNC_INDEX8
#define FUNC_INDEX8(name)
Definition
GXVert.h:59
FUNC_INDEX16
#define FUNC_INDEX16(name)
Definition
GXVert.h:62
FUNC_4PARAM
#define FUNC_4PARAM(name, T)
Definition
GXVert.h:56
FUNC_3PARAM
#define FUNC_3PARAM(name, T)
Definition
GXVert.h:53
FUNC_1PARAM
#define FUNC_1PARAM(name, T)
Definition
GXVert.h:47
GXWGFifo
#define GXWGFifo
Definition
GXVert.h:29
GXFIFO_ADDR
#define GXFIFO_ADDR
Definition
GXVert.h:10
types.h
s8
signed char s8
Definition
types.h:4
u32
unsigned long u32
Definition
types.h:9
s16
signed short int s16
Definition
types.h:6
f32
float f32
Definition
types.h:13
u16
unsigned short int u16
Definition
types.h:7
s32
signed long s32
Definition
types.h:8
u8
unsigned char u8
Definition
types.h:5
GXColor
Definition
GXStruct.h:29
PPCWGPipe
Definition
GXVert.h:13
PPCWGPipe::s16
s16 s16
Definition
GXVert.h:19
PPCWGPipe::s8
s8 s8
Definition
GXVert.h:18
PPCWGPipe::f64
f64 f64
Definition
GXVert.h:23
PPCWGPipe::f32
f32 f32
Definition
GXVert.h:22
PPCWGPipe::u32
u32 u32
Definition
GXVert.h:16
PPCWGPipe::u16
u16 u16
Definition
GXVert.h:15
PPCWGPipe::s32
s32 s32
Definition
GXVert.h:20
PPCWGPipe::s64
s64 s64
Definition
GXVert.h:21
PPCWGPipe::u8
u8 u8
Definition
GXVert.h:14
PPCWGPipe::u64
u64 u64
Definition
GXVert.h:17
extern
dolphin
include
dolphin
gx
GXVert.h
Generated by
1.17.0