Defines | |
#define | OAM_CLEAR() memset32(oam_mem, 0, OAM_SIZE/4) |
Functions | |
void | oam_init (OBJ_ATTR *obj, uint count) |
Initialize an array of count OBJ_ATTRs with with safe values. | |
INLINE void | oam_copy (OBJ_ATTR *dst, const OBJ_ATTR *src, uint count) |
Copies count OAM entries from src to dst. | |
INLINE OBJ_ATTR * | obj_set_attr (OBJ_ATTR *obj, u16 a0, u16 a1, u16 a2) |
Set the attributes of an object. | |
INLINE void | obj_set_pos (OBJ_ATTR *obj, int x, int y) |
Set the position of obj. | |
INLINE void | obj_hide (OBJ_ATTR *obj) |
Hide an object. | |
INLINE void | obj_unhide (OBJ_ATTR *obj, u16 mode) |
Unhide an object. | |
INLINE const u8 * | obj_get_size (const OBJ_ATTR *obj) |
Get object's sizes as a byte array. | |
INLINE int | obj_get_width (const OBJ_ATTR *obj) |
Get object's width. | |
INLINE int | obj_get_height (const OBJ_ATTR *obj) |
Gets object's height. | |
void | obj_copy (OBJ_ATTR *dst, const OBJ_ATTR *src, uint count) |
Copy attributes 0-2 in count OBJ_ATTRs. | |
void | obj_hide_multi (OBJ_ATTR *obj, u32 count) |
Hide an array of OBJ_ATTRs. | |
void | obj_unhide_multi (OBJ_ATTR *obj, u16 mode, uint count) |
void | obj_aff_copy (OBJ_AFFINE *dst, const OBJ_AFFINE *src, uint count) |
INLINE void | obj_aff_set (OBJ_AFFINE *oaff, FIXED pa, FIXED pb, FIXED pc, FIXED pd) |
Set the elements of an object affine matrix. | |
INLINE void | obj_aff_identity (OBJ_AFFINE *oaff) |
Set an object affine matrix to the identity matrix. | |
INLINE void | obj_aff_scale (OBJ_AFFINE *oaff, FIXED sx, FIXED sy) |
Set an object affine matrix for scaling. | |
INLINE void | obj_aff_shearx (OBJ_AFFINE *oaff, FIXED hx) |
INLINE void | obj_aff_sheary (OBJ_AFFINE *oaff, FIXED hy) |
void | obj_aff_rotate (OBJ_AFFINE *oaff, u16 alpha) |
Set obj matrix to counter-clockwise rotation. | |
void | obj_aff_rotscale (OBJ_AFFINE *oaff, FIXED sx, FIXED sy, u16 alpha) |
Set obj matrix to 2d scaling, then counter-clockwise rotation. | |
void | obj_aff_premul (OBJ_AFFINE *dst, const OBJ_AFFINE *src) |
Pre-multiply dst by src: D = S*D. | |
void | obj_aff_postmul (OBJ_AFFINE *dst, const OBJ_AFFINE *src) |
Post-multiply dst by src: D= D*S. | |
void | obj_aff_rotscale2 (OBJ_AFFINE *oaff, const AFF_SRC *as) |
Set obj matrix to 2d scaling, then counter-clockwise rotation. | |
void | obj_rotscale_ex (OBJ_ATTR *obj, OBJ_AFFINE *oaff, const AFF_SRC_EX *asx) |
Rot/scale an object around an arbitrary point. | |
INLINE void | obj_aff_scale_inv (OBJ_AFFINE *oa, FIXED wx, FIXED wy) |
INLINE void | obj_aff_rotate_inv (OBJ_AFFINE *oa, u16 theta) |
INLINE void | obj_aff_shearx_inv (OBJ_AFFINE *oa, FIXED hx) |
INLINE void | obj_aff_sheary_inv (OBJ_AFFINE *oa, FIXED hy) |
#define OAM_CLEAR | ( | ) | memset32(oam_mem, 0, OAM_SIZE/4) |
void obj_aff_rotate | ( | OBJ_AFFINE * | oaff, | |
u16 | alpha | |||
) |
Set obj matrix to counter-clockwise rotation.
oaff | Object affine struct to set. | |
alpha | CCW angle. full-circle is 10000h. |
void obj_aff_rotscale | ( | OBJ_AFFINE * | oaff, | |
FIXED | sx, | |||
FIXED | sy, | |||
u16 | alpha | |||
) |
Set obj matrix to 2d scaling, then counter-clockwise rotation.
oaff | Object affine struct to set. | |
sx | Horizontal scale (zoom). .8 fixed point. | |
sy | Vertical scale (zoom). .8 fixed point. | |
alpha | CCW angle. full-circle is 10000h. |
void obj_aff_rotscale2 | ( | OBJ_AFFINE * | oaff, | |
const AFF_SRC * | as | |||
) |
Set obj matrix to 2d scaling, then counter-clockwise rotation.
oaff | Object affine struct to set. | |
as | Struct with scales and angle. |
void obj_rotscale_ex | ( | OBJ_ATTR * | obj, | |
OBJ_AFFINE * | oaff, | |||
const AFF_SRC_EX * | asx | |||
) |
Rot/scale an object around an arbitrary point.
Sets up obj and oaff for rot/scale transformation around an arbitrary point using the asx data.
obj | Object to set. | |
oaff | Object affine data to set. | |
asx | Affine source data: screen and texture origins, scales and angle. |
INLINE void obj_unhide | ( | OBJ_ATTR * | obj, | |
u16 | mode | |||
) |
Unhide an object.
obj | Object to unhide. | |
mode | Object mode to unhide to. Necessary because this affects the affine-ness of the object. |