libtonc: Objects

Tonclib

Objects
[Video]


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_ATTRobj_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)

Detailed Description


Define Documentation

 
#define OAM_CLEAR (  )     memset32(oam_mem, 0, OAM_SIZE/4)


Function Documentation

void obj_aff_rotate ( OBJ_AFFINE oaff,
u16  alpha 
)

Set obj matrix to counter-clockwise rotation.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
obj Object to unhide.
mode Object mode to unhide to. Necessary because this affects the affine-ness of the object.


Generated on Mon Aug 25 17:03:57 2008 for libtonc by  doxygen 1.5.3