PS2SDK
PS2 Homebrew Libraries
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
#ifndef __LIBVUX_H__
17
#define __LIBVUX_H__
18
19
/*
20
21
y
22
|
23
| z
24
| /
25
| /
26
0-------x
27
28
row major
29
*/
30
31
32
#define VU_LIGHT_TYPE_FLAT 0x10
33
35
typedef
struct
36
{
37
38
float
m[4][4];
39
40
}
VU_MATRIX
__attribute__
((
aligned
(16)));
41
43
typedef
struct
44
{
45
float
x;
46
float
y;
47
float
z;
48
float
w;
49
50
}
VU_VECTOR
__attribute__
((
aligned
(16)));
51
53
typedef
struct
54
{
56
unsigned
short
x
;
58
unsigned
short
y
;
59
unsigned
int
z;
60
61
}
VU_SXYZ
;
62
64
typedef
struct
65
{
67
unsigned
short
x
;
69
unsigned
short
y
;
70
unsigned
int
z:24;
71
unsigned
char
f;
72
73
}
VU_SXYZF
;
74
76
typedef
struct
77
{
78
unsigned
char
r;
79
unsigned
char
g;
80
unsigned
char
b;
81
unsigned
char
a;
82
float
q;
83
84
}
VU_CVECTOR
;
85
87
typedef
struct
88
{
89
float
r;
90
float
g;
91
float
b;
92
float
a;
93
94
}
VU_FCVECTOR
;
95
96
typedef
struct
97
{
98
VU_VECTOR
direction;
99
VU_FCVECTOR
color;
100
101
}
VU_FLAT_LIGHT
;
102
103
#ifndef ftoi4
104
#define ftoi4(f) ((int)((f)*16.0f))
105
#endif
106
107
#ifndef deg2radian
108
#define deg2radian(angle) ((angle*3.1415926535f)/180)
109
#endif
110
111
#ifndef radian2deg
112
#define radian2deg(radian) ((180.0f / 3.1415926535f) * (radian))
113
#endif
114
115
#ifdef __cplusplus
116
extern
"C"
{
117
#endif
118
119
/* common stuff */
120
extern
void
VuInit(
void
);
121
122
extern
void
VuSetGeometryXYOffset(
unsigned
short
x,
unsigned
short
y);
123
extern
void
VuSetProjection(
float
z);
124
extern
void
VuSetProjectionMatrix(
const
VU_MATRIX
*projection);
125
extern
void
VuSetProjectionType(
unsigned
int
type);
126
extern
void
VuSetWorldMatrix(
const
VU_MATRIX
*world);
127
extern
void
VuSetViewMatrix(
const
VU_MATRIX
*view);
128
extern
void
VuSetLocalScreenMatrix(
const
VU_MATRIX
*m);
129
extern
void
VuSetProjectionNearPlaneWH(
unsigned
int
w,
unsigned
int
h);
130
extern
void
VuSetAmbientLight(
float
r,
float
g,
float
b);
131
132
/* 99% hw(vu0 macro mode) */
133
extern
void
Vu0IdMatrix(
VU_MATRIX
*m);
134
extern
void
Vu0ResetMatrix(
VU_MATRIX
*m);
135
//extern void VuxRotMatrixX(VU_MATRIX *m, float x);
136
//extern void VuxRotMatrixY(VU_MATRIX *m, float y);
137
//extern void VuxRotMatrixZ(VU_MATRIX *m, float z);
138
//extern void VuxRotMatrixXYZ(VU_MATRIX *m, float x,float y, float z);
139
extern
void
Vu0TransMatrix(
VU_MATRIX
*m,
VU_VECTOR
*t);
140
extern
void
Vu0TransMatrixXYZ(
VU_MATRIX
*m,
float
x,
float
y,
float
z);
141
extern
void
Vu0ScaleMatrix(
VU_MATRIX
*m,
VU_VECTOR
*s);
142
extern
void
Vu0ScaleMatrixXYZ(
VU_MATRIX
*m,
float
x,
float
y,
float
z);
143
extern
void
Vu0MulMatrix(
VU_MATRIX
*m0,
VU_MATRIX
*m1,
VU_MATRIX
*out);
144
//extern void Vu0InverseMatrix(VU_MATRIX *in, VU_MATRIX *out);
145
extern
void
Vu0ApplyMatrix(
VU_MATRIX
*m,
VU_VECTOR
*v0,
VU_VECTOR
*out);
146
extern
void
Vu0ApplyRotMatrix(
VU_MATRIX
*m,
VU_VECTOR
*v0,
VU_VECTOR
*out);
147
extern
void
Vu0CopyMatrix(
VU_MATRIX
*dest,
VU_MATRIX
*src);
148
extern
float
Vu0DotProduct(
VU_VECTOR
*v0,
VU_VECTOR
*v1);
149
150
/* 100% sw */
151
extern
void
VuxIdMatrix(
VU_MATRIX
*m);
152
extern
void
VuxResetMatrix(
VU_MATRIX
*m);
153
extern
void
VuxRotMatrix(
VU_MATRIX
*m,
VU_VECTOR
*v);
154
extern
void
VuxRotMatrixX(
VU_MATRIX
*m,
float
x);
155
extern
void
VuxRotMatrixY(
VU_MATRIX
*m,
float
y);
156
extern
void
VuxRotMatrixZ(
VU_MATRIX
*m,
float
z);
157
extern
void
VuxRotMatrixXYZ(
VU_MATRIX
*m,
float
x,
float
y,
float
z);
158
extern
void
VuxTransMatrix(
VU_MATRIX
*m,
VU_VECTOR
*v0);
159
extern
void
VuxTransMatrixXYZ(
VU_MATRIX
*m,
float
x,
float
y,
float
z);
160
extern
void
VuxScaleMatrix(
VU_MATRIX
*m,
VU_VECTOR
*s);
161
extern
void
VuxScaleMatrixXYZ(
VU_MATRIX
*m,
float
x,
float
y,
float
z);
162
extern
void
VuxMulMatrix(
VU_MATRIX
*m0,
VU_MATRIX
*m1,
VU_MATRIX
*out);
163
extern
void
VuxInverseMatrix(
VU_MATRIX
*in,
VU_MATRIX
*mat);
164
extern
void
VuxCopyMatrix(
VU_MATRIX
*dest,
VU_MATRIX
*src);
165
extern
void
VuxApplyMatrix(
VU_MATRIX
*m,
VU_VECTOR
*v0,
VU_VECTOR
*out);
166
extern
void
VuxApplyRotMatrix(
VU_MATRIX
*m,
VU_VECTOR
*v0,
VU_VECTOR
*out);
167
extern
float
VuxDotProduct(
VU_VECTOR
*v0,
VU_VECTOR
*v1);
168
extern
VU_VECTOR
VuxCrossProduct(
VU_VECTOR
*v0,
VU_VECTOR
*v1);
169
extern
void
VuxCrossProduct0(
VU_VECTOR
*v0,
VU_VECTOR
*v1,
VU_VECTOR
*out);
170
extern
void
VuxVectorNormal(
VU_VECTOR
*v);
171
extern
void
VuxVectorNormal0(
VU_VECTOR
*in,
VU_VECTOR
*out);
172
173
extern
void
VuxApplyMatrixLS(
VU_VECTOR
*v0,
VU_VECTOR
*out);
174
extern
void
VuxApplyRotMatrixLS(
VU_VECTOR
*v0,
VU_VECTOR
*out);
175
176
extern
void
VuxMakeLocalScreenMatrix(
VU_MATRIX
*out,
VU_MATRIX
*world,
VU_MATRIX
*view);
177
extern
void
VuxMakeLocalScreenMatrix2(
VU_MATRIX
*out,
VU_MATRIX
*world,
VU_MATRIX
*view,
VU_MATRIX
*projection);
178
179
extern
void
VuxMakeViewMatrix(
VU_MATRIX
*out,
VU_VECTOR
*rot,
VU_VECTOR
*pos,
VU_VECTOR
*scale);
180
extern
void
VuxMakeLookAtViewMatrix(
VU_MATRIX
*out,
VU_VECTOR
*eye,
VU_VECTOR
*target,
VU_VECTOR
*up);
181
extern
void
VuxMakeProjectionMatrix(
VU_MATRIX
*proj,
float
near_plane_w,
float
near_plane_h,
float
near_plane_z,
float
far_plane_z);
182
184
extern
void
VuxUpdateLocalScreenMatrix
(
void
);
185
186
extern
void
VuxRotTrans(
VU_VECTOR
*v0,
VU_VECTOR
*out);
187
extern
void
VuxRotTrans3(
VU_VECTOR
*v0,
VU_VECTOR
*v1,
VU_VECTOR
*v2,
VU_VECTOR
*tv0,
VU_VECTOR
*tv1,
VU_VECTOR
*tv2);
188
extern
void
VuxRotTransN(
VU_VECTOR
*verts,
VU_VECTOR
*tverts,
unsigned
int
num_verts);
189
extern
void
VuxPers(
VU_VECTOR
*v0,
VU_SXYZ
*sxyz0);
190
extern
void
VuxPers3(
VU_VECTOR
*v0,
VU_VECTOR
*v1,
VU_VECTOR
*v2,
VU_SXYZ
*sxyz0,
VU_SXYZ
*sxyz1,
VU_SXYZ
*sxyz2);
191
extern
void
VuxPersN(
VU_VECTOR
*verts,
VU_SXYZ
*sxyz,
unsigned
int
num_verts);
192
extern
int
VuxPersClip3(
VU_VECTOR
*v0,
VU_VECTOR
*v1,
VU_VECTOR
*v2,
VU_SXYZ
*sxyz0,
VU_SXYZ
*sxyz1,
VU_SXYZ
*sxyz2);
193
extern
float
VuxRotTransPers(
VU_VECTOR
*v0,
VU_SXYZ
*sxyz0);
194
extern
float
VuxRotTransPers3(
VU_VECTOR
*v0,
VU_VECTOR
*v1,
VU_VECTOR
*v2,
VU_SXYZ
*sxyz0,
VU_SXYZ
*sxyz1,
VU_SXYZ
*sxyz2);
195
extern
void
VuxRotTransPersN(
VU_VECTOR
*verts,
VU_SXYZ
*sxyz,
unsigned
int
num_verts);
196
extern
int
VuxRotTransPersClip3(
VU_VECTOR
*v0,
VU_VECTOR
*v1,
VU_VECTOR
*v2,
VU_SXYZ
*sxyz0,
VU_SXYZ
*sxyz1,
VU_SXYZ
*sxyz2);
197
198
extern
int
VuxClipSxyz(
VU_SXYZ
*sxyz0,
VU_SXYZ
*sxyz1,
VU_SXYZ
*sxyz2);
199
200
/*lighting*/
201
extern
int
VuxLightNormal(
VU_VECTOR
*normal,
VU_CVECTOR
*col0,
void
*light,
unsigned
int
light_type,
VU_CVECTOR
*out0);
202
203
extern
VU_MATRIX
VuWorldMatrix;
204
extern
VU_MATRIX
VuViewMatrix;
205
extern
VU_MATRIX
VuPrjectionMatrix;
206
extern
VU_MATRIX
VuLocalScreenMatrix;
207
208
#ifdef __cplusplus
209
}
210
#endif
211
212
#endif
/* __LIBVUX_H__ */
__attribute__
typedef __attribute__
Definition
tlbfunc.c:60
VU_SXYZF::y
unsigned short y
Definition
libvux.h:69
VU_SXYZ::y
unsigned short y
Definition
libvux.h:58
VU_SXYZ::x
unsigned short x
Definition
libvux.h:56
VU_SXYZF::x
unsigned short x
Definition
libvux.h:67
VuxUpdateLocalScreenMatrix
void VuxUpdateLocalScreenMatrix(void)
Definition
vusw.c:634
VU_CVECTOR
Definition
libvux.h:77
VU_FCVECTOR
Definition
libvux.h:88
VU_FLAT_LIGHT
Definition
libvux.h:97
VU_MATRIX
Definition
libvux.h:36
VU_SXYZ
Definition
libvux.h:54
VU_SXYZF
Definition
libvux.h:65
VU_VECTOR
Definition
libvux.h:44
__attribute__
Definition
gif_registers.h:39
ee
libvux
include
libvux.h
Generated on Tue Feb 11 2025 21:35:56 for PS2SDK by
1.12.0