sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
Loading...
Searching...
No Matches
libvux.h
Go to the documentation of this file.
1
/*
2
# _____ ___ ____ ___ ____
3
# ____| | ____| | | |____|
4
# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5
#-----------------------------------------------------------------------
6
# (c) 2009 Lion
7
# Licenced under Academic Free License version 2.0
8
# Review ps2sdk README & LICENSE files for further details.
9
*/
10
16
17
#ifndef __LIBVUX_H__
18
#define __LIBVUX_H__
19
20
/*
21
22
y
23
|
24
| z
25
| /
26
| /
27
0-------x
28
29
row major
30
*/
31
32
33
#define VU_LIGHT_TYPE_FLAT 0x10
34
36
typedef
struct
37
{
38
39
float
m[4][4];
40
41
}
VU_MATRIX
__attribute__
((aligned(16)));
42
44
typedef
struct
45
{
46
float
x;
47
float
y;
48
float
z;
49
float
w;
50
51
}
VU_VECTOR
__attribute__
((aligned(16)));
52
54
typedef
struct
55
{
57
unsigned
short
x
;
59
unsigned
short
y
;
60
unsigned
int
z;
61
62
}
VU_SXYZ
;
63
65
typedef
struct
66
{
68
unsigned
short
x
;
70
unsigned
short
y
;
71
unsigned
int
z:24;
72
unsigned
char
f;
73
74
}
VU_SXYZF
;
75
77
typedef
struct
78
{
79
unsigned
char
r;
80
unsigned
char
g;
81
unsigned
char
b;
82
unsigned
char
a;
83
float
q;
84
85
}
VU_CVECTOR
;
86
88
typedef
struct
89
{
90
float
r;
91
float
g;
92
float
b;
93
float
a;
94
95
}
VU_FCVECTOR
;
96
97
typedef
struct
98
{
99
VU_VECTOR
direction;
100
VU_FCVECTOR
color;
101
102
}
VU_FLAT_LIGHT
;
103
104
#ifndef ftoi4
105
#define ftoi4(f) ((int)((f)*16.0f))
106
#endif
107
108
#ifndef deg2radian
109
#define deg2radian(angle) ((angle*3.1415926535f)/180)
110
#endif
111
112
#ifndef radian2deg
113
#define radian2deg(radian) ((180.0f / 3.1415926535f) * (radian))
114
#endif
115
116
#ifdef __cplusplus
117
extern
"C"
{
118
#endif
119
120
/* common stuff */
121
extern
void
VuInit(
void
);
122
123
extern
void
VuSetGeometryXYOffset(
unsigned
short
x,
unsigned
short
y);
124
extern
void
VuSetProjection(
float
z);
125
extern
void
VuSetProjectionMatrix(
const
VU_MATRIX
*projection);
126
extern
void
VuSetProjectionType(
unsigned
int
type);
127
extern
void
VuSetWorldMatrix(
const
VU_MATRIX
*world);
128
extern
void
VuSetViewMatrix(
const
VU_MATRIX
*view);
129
extern
void
VuSetLocalScreenMatrix(
const
VU_MATRIX
*m);
130
extern
void
VuSetProjectionNearPlaneWH(
unsigned
int
w,
unsigned
int
h);
131
extern
void
VuSetAmbientLight(
float
r,
float
g,
float
b);
132
133
/* 99% hw(vu0 macro mode) */
134
extern
void
Vu0IdMatrix(
VU_MATRIX
*m);
135
extern
void
Vu0ResetMatrix(
VU_MATRIX
*m);
136
//extern void VuxRotMatrixX(VU_MATRIX *m, float x);
137
//extern void VuxRotMatrixY(VU_MATRIX *m, float y);
138
//extern void VuxRotMatrixZ(VU_MATRIX *m, float z);
139
//extern void VuxRotMatrixXYZ(VU_MATRIX *m, float x,float y, float z);
140
extern
void
Vu0TransMatrix(
VU_MATRIX
*m,
VU_VECTOR
*t);
141
extern
void
Vu0TransMatrixXYZ(
VU_MATRIX
*m,
float
x,
float
y,
float
z);
142
extern
void
Vu0ScaleMatrix(
VU_MATRIX
*m,
VU_VECTOR
*s);
143
extern
void
Vu0ScaleMatrixXYZ(
VU_MATRIX
*m,
float
x,
float
y,
float
z);
144
extern
void
Vu0MulMatrix(
VU_MATRIX
*m0,
VU_MATRIX
*m1,
VU_MATRIX
*out);
145
//extern void Vu0InverseMatrix(VU_MATRIX *in, VU_MATRIX *out);
146
extern
void
Vu0ApplyMatrix(
VU_MATRIX
*m,
VU_VECTOR
*v0,
VU_VECTOR
*out);
147
extern
void
Vu0ApplyRotMatrix(
VU_MATRIX
*m,
VU_VECTOR
*v0,
VU_VECTOR
*out);
148
extern
void
Vu0CopyMatrix(
VU_MATRIX
*dest,
VU_MATRIX
*src);
149
extern
float
Vu0DotProduct(
VU_VECTOR
*v0,
VU_VECTOR
*v1);
150
151
/* 100% sw */
152
extern
void
VuxIdMatrix(
VU_MATRIX
*m);
153
extern
void
VuxResetMatrix(
VU_MATRIX
*m);
154
extern
void
VuxRotMatrix(
VU_MATRIX
*m,
VU_VECTOR
*v);
155
extern
void
VuxRotMatrixX(
VU_MATRIX
*m,
float
x);
156
extern
void
VuxRotMatrixY(
VU_MATRIX
*m,
float
y);
157
extern
void
VuxRotMatrixZ(
VU_MATRIX
*m,
float
z);
158
extern
void
VuxRotMatrixXYZ(
VU_MATRIX
*m,
float
x,
float
y,
float
z);
159
extern
void
VuxTransMatrix(
VU_MATRIX
*m,
VU_VECTOR
*v0);
160
extern
void
VuxTransMatrixXYZ(
VU_MATRIX
*m,
float
x,
float
y,
float
z);
161
extern
void
VuxScaleMatrix(
VU_MATRIX
*m,
VU_VECTOR
*s);
162
extern
void
VuxScaleMatrixXYZ(
VU_MATRIX
*m,
float
x,
float
y,
float
z);
163
extern
void
VuxMulMatrix(
VU_MATRIX
*m0,
VU_MATRIX
*m1,
VU_MATRIX
*out);
164
extern
void
VuxInverseMatrix(
VU_MATRIX
*in,
VU_MATRIX
*mat);
165
extern
void
VuxCopyMatrix(
VU_MATRIX
*dest,
VU_MATRIX
*src);
166
extern
void
VuxApplyMatrix(
VU_MATRIX
*m,
VU_VECTOR
*v0,
VU_VECTOR
*out);
167
extern
void
VuxApplyRotMatrix(
VU_MATRIX
*m,
VU_VECTOR
*v0,
VU_VECTOR
*out);
168
extern
float
VuxDotProduct(
VU_VECTOR
*v0,
VU_VECTOR
*v1);
169
extern
VU_VECTOR
VuxCrossProduct(
VU_VECTOR
*v0,
VU_VECTOR
*v1);
170
extern
void
VuxCrossProduct0(
VU_VECTOR
*v0,
VU_VECTOR
*v1,
VU_VECTOR
*out);
171
extern
void
VuxVectorNormal(
VU_VECTOR
*v);
172
extern
void
VuxVectorNormal0(
VU_VECTOR
*in,
VU_VECTOR
*out);
173
174
extern
void
VuxApplyMatrixLS(
VU_VECTOR
*v0,
VU_VECTOR
*out);
175
extern
void
VuxApplyRotMatrixLS(
VU_VECTOR
*v0,
VU_VECTOR
*out);
176
177
extern
void
VuxMakeLocalScreenMatrix(
VU_MATRIX
*out,
VU_MATRIX
*world,
VU_MATRIX
*view);
178
extern
void
VuxMakeLocalScreenMatrix2(
VU_MATRIX
*out,
VU_MATRIX
*world,
VU_MATRIX
*view,
VU_MATRIX
*projection);
179
180
extern
void
VuxMakeViewMatrix(
VU_MATRIX
*out,
VU_VECTOR
*rot,
VU_VECTOR
*pos,
VU_VECTOR
*scale);
181
extern
void
VuxMakeLookAtViewMatrix(
VU_MATRIX
*out,
VU_VECTOR
*eye,
VU_VECTOR
*target,
VU_VECTOR
*up);
182
extern
void
VuxMakeProjectionMatrix(
VU_MATRIX
*proj,
float
near_plane_w,
float
near_plane_h,
float
near_plane_z,
float
far_plane_z);
183
185
extern
void
VuxUpdateLocalScreenMatrix
(
void
);
186
187
extern
void
VuxRotTrans(
VU_VECTOR
*v0,
VU_VECTOR
*out);
188
extern
void
VuxRotTrans3(
VU_VECTOR
*v0,
VU_VECTOR
*v1,
VU_VECTOR
*v2,
VU_VECTOR
*tv0,
VU_VECTOR
*tv1,
VU_VECTOR
*tv2);
189
extern
void
VuxRotTransN(
VU_VECTOR
*verts,
VU_VECTOR
*tverts,
unsigned
int
num_verts);
190
extern
void
VuxPers(
VU_VECTOR
*v0,
VU_SXYZ
*sxyz0);
191
extern
void
VuxPers3(
VU_VECTOR
*v0,
VU_VECTOR
*v1,
VU_VECTOR
*v2,
VU_SXYZ
*sxyz0,
VU_SXYZ
*sxyz1,
VU_SXYZ
*sxyz2);
192
extern
void
VuxPersN(
VU_VECTOR
*verts,
VU_SXYZ
*sxyz,
unsigned
int
num_verts);
193
extern
int
VuxPersClip3(
VU_VECTOR
*v0,
VU_VECTOR
*v1,
VU_VECTOR
*v2,
VU_SXYZ
*sxyz0,
VU_SXYZ
*sxyz1,
VU_SXYZ
*sxyz2);
194
extern
float
VuxRotTransPers(
VU_VECTOR
*v0,
VU_SXYZ
*sxyz0);
195
extern
float
VuxRotTransPers3(
VU_VECTOR
*v0,
VU_VECTOR
*v1,
VU_VECTOR
*v2,
VU_SXYZ
*sxyz0,
VU_SXYZ
*sxyz1,
VU_SXYZ
*sxyz2);
196
extern
void
VuxRotTransPersN(
VU_VECTOR
*verts,
VU_SXYZ
*sxyz,
unsigned
int
num_verts);
197
extern
int
VuxRotTransPersClip3(
VU_VECTOR
*v0,
VU_VECTOR
*v1,
VU_VECTOR
*v2,
VU_SXYZ
*sxyz0,
VU_SXYZ
*sxyz1,
VU_SXYZ
*sxyz2);
198
199
extern
int
VuxClipSxyz(
VU_SXYZ
*sxyz0,
VU_SXYZ
*sxyz1,
VU_SXYZ
*sxyz2);
200
201
/*lighting*/
202
extern
int
VuxLightNormal(
VU_VECTOR
*normal,
VU_CVECTOR
*col0,
void
*light,
unsigned
int
light_type,
VU_CVECTOR
*out0);
203
204
extern
VU_MATRIX
VuWorldMatrix;
205
extern
VU_MATRIX
VuViewMatrix;
206
extern
VU_MATRIX
VuPrjectionMatrix;
207
extern
VU_MATRIX
VuLocalScreenMatrix;
208
209
#ifdef __cplusplus
210
}
211
#endif
212
213
#endif
/* __LIBVUX_H__ */
VuxUpdateLocalScreenMatrix
void VuxUpdateLocalScreenMatrix(void)
Definition
vusw.c:634
VU_CVECTOR
Definition
libvux.h:78
VU_FCVECTOR
Definition
libvux.h:89
VU_FLAT_LIGHT
Definition
libvux.h:98
VU_MATRIX
Definition
libvux.h:37
VU_SXYZF
Definition
libvux.h:66
VU_SXYZF::y
unsigned short y
Definition
libvux.h:70
VU_SXYZF::x
unsigned short x
Definition
libvux.h:68
VU_SXYZ
Definition
libvux.h:55
VU_SXYZ::y
unsigned short y
Definition
libvux.h:59
VU_SXYZ::x
unsigned short x
Definition
libvux.h:57
VU_VECTOR
Definition
libvux.h:45
__attribute__
Definition
gif_registers.h:40
core
libvux
include
libvux.h
Generated by
1.18.0