# G2_SetOBJAttr

## 構文

      #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
      );

## 引数

oam | OAMデータの格納場所へのポインタ
x | X座標
y | Y座標
priority | 表示優先順位(0〜3)
mode | OBJモード
mosaic | モザイクの有無
effect | エフェクトの種類を指定
shape | OBJの形状
color | カラーモード(modeがビットマップOBJ時は16色モードのみ指定可能)
charName | 先頭キャラクタネーム(2次元マッピングモードかつ256色モードの場合は、偶数である必要があります)
cParam | カラーパラメータ(modeがビットマップOBJ時はα値、それ以外の場合はカラーパレットNo)
rsParam | アフィン変換パラメータインデックス(effectがアフィン・アフィン倍角表示の場合のみ有効)

## 返り値

なし。

## 説明

OBJの属性を一括設定します。この関数でOBJアトリビュート0,1,2の全てのビットを設定することができます。

`GX_OAM_MODE_NORMAL` | ノーマルOBJ
`GX_OAM_MODE_XLU` | 半透明OBJ
`GX_OAM_MODE_OBJWND` | OBJウィンドウ
`GX_OAM_MODE_BITMAPOBJ` | ビットマップOBJ

`GX_OAM_EFFECT_NONE` | effectなし
`GX_OAM_EFFECT_FLIP_H` | Hフリップ
`GX_OAM_EFFECT_FLIP_V` | Vフリップ
`GX_OAM_EFFECT_FLIP_HV` | HVフリップ
`GX_OAM_EFFECT_AFFINE` | アフィン
`GX_OAM_EFFECT_NODISPLAY` | 非表示
`GX_OAM_EFFECT_AFFINE_DOUBLE` | アフィン(倍角表示)

`GX_OAM_SHAPE_8x8` | `8x8`ドット
`GX_OAM_SHAPE_16x16` | `16x16`ドット
`GX_OAM_SHAPE_32x32` | `32x32`ドット
`GX_OAM_SHAPE_64x64` | `64x64`ドット
`GX_OAM_SHAPE_16x8` | `16x8`ドット
`GX_OAM_SHAPE_32x8` | `32x8`ドット
`GX_OAM_SHAPE_32x16` | `32x16`ドット
`GX_OAM_SHAPE_64x32` | `64x32`ドット
`GX_OAM_SHAPE_8x16` | `8x16`ドット
`GX_OAM_SHAPE_8x32` | `8x32`ドット
`GX_OAM_SHAPE_16x32` | `16x32`ドット
`GX_OAM_SHAPE_32x64` | `32x64`ドット

`GX_OAM_COLORMODE_16` | 16色モード
`GX_OAM_COLORMODE_256` | 256色モード

以下に引数に使用される列挙型の型定義を示しておきます。

    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;

## 参照

GXOamAttr

## 履歴

Ver. 2004/02/13

- 説明の追加。

Ver. 2004/01/19