Go to the source code of this file.
|
| qword_t * | draw_prim_start (qword_t *q, int context, prim_t *prim, color_t *color) |
| |
| qword_t * | draw_prim_end (qword_t *q, int nreg, u64 reglist) |
| |
| int | draw_convert_rgbq (color_t *output, int count, vertex_f_t *vertices, color_f_t *colours, unsigned char alpha) |
| |
| int | draw_convert_rgbaq (color_t *output, int count, vertex_f_t *vertices, color_f_t *colours) |
| |
| int | draw_convert_st (texel_t *output, int count, vertex_f_t *vertices, texel_f_t *coords) |
| |
| int | draw_convert_xyz (xyz_t *output, float x, float y, int z, int count, vertex_f_t *vertices) |
| |
Draw library 3D functions
Definition in file draw3d.h.
◆ DRAW_XYZ_REGLIST
Value:Register lists
Definition at line 16 of file draw3d.h.
◆ DRAW_RGBAQ_REGLIST
| #define DRAW_RGBAQ_REGLIST |
◆ DRAW_UV_REGLIST
◆ DRAW_RGBAQ_UV_REGLIST
| #define DRAW_RGBAQ_UV_REGLIST |
◆ DRAW_STQ_REGLIST
◆ DRAW_STQ2_REGLIST
| #define DRAW_STQ2_REGLIST |
Value:Sandro: Similar to DRAW_STQ_REGLIST, but order of ST and RGBAQ is swapped. Needed for REGLIST mode which is used mostly in VU1, because of nature of 128bit registers. Without that, texture perspective correction will not work. Bad example:
- RGBA -> RGBAQ (q was not set!)
- STQ -> ST
- XYZ2 Good example:
- STQ -> ST
- RGBA -> RGBAQ (q grabbed from STQ)
- XYZ2 For more details, please check: EE_Overview_Manual.pdf - 3.3 Data transfer to GS GS_Users_Manual.pdf - 3.4.10 Perspective correction
Definition at line 55 of file draw3d.h.
◆ draw_prim_start()
| qword_t* draw_prim_start |
( |
qword_t * |
q, |
|
|
int |
context, |
|
|
prim_t * |
prim, |
|
|
color_t * |
color |
|
) |
| |
Begins a primitive, allowing for vertex data to be filled in the packet directly
Definition at line 11 of file draw3d.c.
◆ draw_prim_end()
| qword_t* draw_prim_end |
( |
qword_t * |
q, |
|
|
int |
nreg, |
|
|
u64 |
reglist |
|
) |
| |
Ends a primitive by calculating the number of qwords used, the number of registers, the register list
Definition at line 33 of file draw3d.c.
◆ draw_convert_rgbq()
| int draw_convert_rgbq |
( |
color_t * |
output, |
|
|
int |
count, |
|
|
vertex_f_t * |
vertices, |
|
|
color_f_t * |
colours, |
|
|
unsigned char |
alpha |
|
) |
| |
Converts floating point color, replacing alpha with constant value, and calculates q
Definition at line 56 of file draw3d.c.
◆ draw_convert_rgbaq()
| int draw_convert_rgbaq |
( |
color_t * |
output, |
|
|
int |
count, |
|
|
vertex_f_t * |
vertices, |
|
|
color_f_t * |
colours |
|
) |
| |
Converts floating point color and calculates q value
Definition at line 88 of file draw3d.c.
◆ draw_convert_st()
| int draw_convert_st |
( |
texel_t * |
output, |
|
|
int |
count, |
|
|
vertex_f_t * |
vertices, |
|
|
texel_f_t * |
coords |
|
) |
| |
Calculates the st coordinates from the perspective coordinate q = 1/w
Definition at line 120 of file draw3d.c.
◆ draw_convert_xyz()
| int draw_convert_xyz |
( |
xyz_t * |
output, |
|
|
float |
x, |
|
|
float |
y, |
|
|
int |
z, |
|
|
int |
count, |
|
|
vertex_f_t * |
vertices |
|
) |
| |
Converts and translates floating point vertices to fixed point vertices
Definition at line 147 of file draw3d.c.