G2_SetOBJAttr
C Specification
-
#include <nitro/gx/g2_oam.h>
void G2_SetOBJAttr(
GXOamAttr * oam,
int x,
int y,
int priority,
GXOamMode mode,
BOOL mosaic,
GXOamEffect effect,
GXOamShape shape,
GXOamColorMode color,
int charName,
int cParam,
int rsParam
);
Description
This function sets OBJ attributes in a batch. This function can set all the bits for OBJ attributes 0, 1, and 2.
GX_OAM_MODE_NORMAL |
Normal OBJ |
GX_OAM_MODE_XLU |
Translucent OBJ |
GX_OAM_MODE_OBJWND |
OBJ window |
GX_OAM_MODE_BITMAPOBJ |
Bitmap OBJ |
GX_OAM_EFFECT_NONE |
No effects |
GX_OAM_EFFECT_FLIP_H |
H flip |
GX_OAM_EFFECT_FLIP_V |
V flip |
GX_OAM_EFFECT_FLIP_HV |
HV flip |
GX_OAM_EFFECT_AFFINE |
Affine |
GX_OAM_EFFECT_NODISPLAY |
Hide |
GX_OAM_EFFECT_AFFINE_DOUBLE |
Affine (Double-size display) |
GX_OAM_SHAPE_8x8 |
8x8 pixels |
GX_OAM_SHAPE_16x16 |
16x16 pixels |
GX_OAM_SHAPE_32x32 |
32x32 pixels |
GX_OAM_SHAPE_64x64 |
64x64 pixels |
GX_OAM_SHAPE_16x8 |
16x8 pixels |
GX_OAM_SHAPE_32x8 |
32x8 pixels |
GX_OAM_SHAPE_32x16 |
32x16 pixels |
GX_OAM_SHAPE_64x32 |
64x32 pixels |
GX_OAM_SHAPE_8x16 |
8x16 pixels |
GX_OAM_SHAPE_8x32 |
8x32 pixels |
GX_OAM_SHAPE_16x32 |
16x32 pixels |
GX_OAM_SHAPE_32x64 |
32x64 pixels |
GX_OAM_COLOR_16 |
16-color mode |
GX_OAM_COLOR_256 |
256-color mode |
Below is a list of type definitions used in the arguments.
typedef enum
{
GX_OAM_MODE_NORMAL = 0,
GX_OAM_MODE_XLU = 1,
GX_OAM_MODE_OBJWND = 2,
GX_OAM_MODE_BITMAPOBJ = 3
}
GXOamMode;
typedef enum
{
GX_OAM_EFFECT_NONE =
(0 << GX_OAM_ATTR01_RSENABLE_SHIFT) | (0 << GX_OAM_ATTR01_HF_SHIFT) | (0 << GX_OAM_ATTR01_VF_SHIFT),
GX_OAM_EFFECT_FLIP_H =
(0 << GX_OAM_ATTR01_RSENABLE_SHIFT) | (1 << GX_OAM_ATTR01_HF_SHIFT) | (0 << GX_OAM_ATTR01_VF_SHIFT),
GX_OAM_EFFECT_FLIP_V =
(0 << GX_OAM_ATTR01_RSENABLE_SHIFT) | (0 << GX_OAM_ATTR01_HF_SHIFT) | (1 << GX_OAM_ATTR01_VF_SHIFT),
GX_OAM_EFFECT_FLIP_HV =
(0 << GX_OAM_ATTR01_RSENABLE_SHIFT) | (1 << GX_OAM_ATTR01_HF_SHIFT) | (1 << GX_OAM_ATTR01_VF_SHIFT),
GX_OAM_EFFECT_AFFINE = (1 << GX_OAM_ATTR01_RSENABLE_SHIFT),
GX_OAM_EFFECT_NODISPLAY = (2 << GX_OAM_ATTR01_RSENABLE_SHIFT),
GX_OAM_EFFECT_AFFINE_DOUBLE = (3 << GX_OAM_ATTR01_RSENABLE_SHIFT)
}
GXOamEffect;
typedef enum
{
GX_OAM_SHAPE_8x8 = (0 << GX_OAM_ATTR01_SHAPE_SHIFT) | (0 << GX_OAM_ATTR01_SIZE_SHIFT),
GX_OAM_SHAPE_16x16 = (0 << GX_OAM_ATTR01_SHAPE_SHIFT) | (1 << GX_OAM_ATTR01_SIZE_SHIFT),
GX_OAM_SHAPE_32x32 = (0 << GX_OAM_ATTR01_SHAPE_SHIFT) | (2 << GX_OAM_ATTR01_SIZE_SHIFT),
GX_OAM_SHAPE_64x64 = (0 << GX_OAM_ATTR01_SHAPE_SHIFT) | (3 << GX_OAM_ATTR01_SIZE_SHIFT),
GX_OAM_SHAPE_16x8 = (1 << GX_OAM_ATTR01_SHAPE_SHIFT) | (0 << GX_OAM_ATTR01_SIZE_SHIFT),
GX_OAM_SHAPE_32x8 = (1 << GX_OAM_ATTR01_SHAPE_SHIFT) | (1 << GX_OAM_ATTR01_SIZE_SHIFT),
GX_OAM_SHAPE_32x16 = (1 << GX_OAM_ATTR01_SHAPE_SHIFT) | (2 << GX_OAM_ATTR01_SIZE_SHIFT),
GX_OAM_SHAPE_64x32 = (1 << GX_OAM_ATTR01_SHAPE_SHIFT) | (3 << GX_OAM_ATTR01_SIZE_SHIFT),
GX_OAM_SHAPE_8x16 = (2 << GX_OAM_ATTR01_SHAPE_SHIFT) | (0 << GX_OAM_ATTR01_SIZE_SHIFT),
GX_OAM_SHAPE_8x32 = (2 << GX_OAM_ATTR01_SHAPE_SHIFT) | (1 << GX_OAM_ATTR01_SIZE_SHIFT),
GX_OAM_SHAPE_16x32 = (2 << GX_OAM_ATTR01_SHAPE_SHIFT) | (2 << GX_OAM_ATTR01_SIZE_SHIFT),
GX_OAM_SHAPE_32x64 = (2 << GX_OAM_ATTR01_SHAPE_SHIFT) | (3 << GX_OAM_ATTR01_SIZE_SHIFT)
}
GXOamShape;
typedef enum
{
GX_OAM_COLORMODE_16 = 0,
GX_OAM_COLORMODE_256 = 1
}
GXOamColorMode;
Arguments
oam |
Pointer to location where OAM data is stored |
x |
x-coordinate |
y |
y-coordinate |
priority |
Display priority |
mode |
OBJ mode |
mosaic |
Enable/disable mosaic |
effect |
Specify effect type |
shape |
OBJ shape |
color |
Color mode (can only be specified in 16-color mode when mode is set to bitmap OBJ) |
charName |
Name of first character (must be an even number when in 2-dimensional mapping mode and 256-color mode) |
cParam |
Color parameter (is a when mode is set to bitmap OBJ; in all other cases, color palette is No) |
rsParam |
Affine transformation parameter index (valid only when the effect is affine or affine double display) |
Return Values
None.
See Also
GXOamAttr
Revision History
02/13/2004 Added explanation
01/19/2004 Initial Version