G3_TexImageParam

# G3*_TexImageParam

## 構文

      #include <nitro/gx/g3imm.h>
      #include <nitro/gx/g3b.h>
      #include <nitro/gx/g3c.h>

      void G3_TexImageParam(
          GXTexFmt texFmt,
          GXTexGen texGen,
          GXTexSizeS s,
          GXTexSizeT t,
          GXTexRepeat repeat,
          GXTexFlip flip,
          GXTexPlttColor0 pltt0,
          u32 addr
      );

      // 以下ディスプレイリスト（コマンド列）作成用API
      void G3B_TexImageParam(GXDLInfo* info, ...);
      void G3C_TexImageParam(GXDLInfo* info, ...);
      void G3BS_TexImageParam(GXDLInfo* info, ...);
      void G3CS_TexImageParam(GXDLInfo* info, ...);

## 引数

info | コマンドリスト情報
texFmt | テクスチャフォーマット
texGen | テクスチャ座標変換モード
s | テクスチャサイズs
t | テクスチャサイズt
repeat | リピートの指定
flip | フリップの指定 (repeatが有効な場合のみ有効です)
pltt0 | パレットの0番カラーを使用するか透明色にするかを選択するフラグ
addr | テクスチャスロット内のテクスチャの先頭オフセットアドレスをそのまま指定します。

## 返り値

なし。

## 説明

テクスチャのパラメータを設定します。`G3*_TexImageParam()` コマンドは通常は`G3*_Begin()` より前で発行しますが、`G3*_Begin(), G3*_End()` 間で発行することもでき、その場合、`G3*_Begin(), G3*_End()` 内の各ポリゴン毎に異なるテクスチャパラメータを設定することが出来ます。

`GX_TEXFMT_NONE` | テクスチャなし
`GX_TEXFMT_A3I5` | 半透明テクスチャ(α3ビット, パレットカラーNo.5ビット)
`GX_TEXFMT_PLTT4` | 4色パレットテクスチャ
`GX_TEXFMT_PLTT16` | 16色パレットテクスチャ
`GX_TEXFMT_PLTT256` | 256色パレットテクスチャ
`GX_TEXFMT_COMP4x4` | 4x4テクセル圧縮テクスチャ
`GX_TEXFMT_A5I3` | 半透明テクスチャ(α5ビット, パレットカラーNo.3ビット)
`GX_TEXFMT_DIRECT` | ダイレクトテクスチャ

`GX_TEXGEN_NONE` | テクスチャ座標変換なし
`GX_TEXGEN_TEXCOORD` | TexCoordソース
`GX_TEXGEN_NORMAL` | Normalソース
`GX_TEXGEN_VERTEX` | Vertexソース

`GX_TEXSIZE_S8` | Ｓ軸方向に8テクセル
`GX_TEXSIZE_S16` | Ｓ軸方向に16テクセル
`GX_TEXSIZE_S32` | Ｓ軸方向に32テクセル
`GX_TEXSIZE_S64` | Ｓ軸方向に64テクセル
`GX_TEXSIZE_S128` | Ｓ軸方向に128テクセル
`GX_TEXSIZE_S256` | Ｓ軸方向に256テクセル
`GX_TEXSIZE_S512` | Ｓ軸方向に512テクセル
`GX_TEXSIZE_S1024` | Ｓ軸方向に1024テクセル

`GX_TEXSIZE_T8` | T軸方向に8テクセル
`GX_TEXSIZE_T16` | T軸方向に16テクセル
`GX_TEXSIZE_T32` | T軸方向に32テクセル
`GX_TEXSIZE_T64` | T軸方向に64テクセル
`GX_TEXSIZE_T128` | T軸方向に128テクセル
`GX_TEXSIZE_T256` | T軸方向に256テクセル
`GX_TEXSIZE_T512` | T軸方向に512テクセル
`GX_TEXSIZE_T1024` | T軸方向に1024テクセル

`GX_TEXREPEAT_NONE` | リピートしない
`GX_TEXREPEAT_S` | S軸方向にリピート
`GX_TEXREPEAT_T` | T軸方向にリピート
`GX_TEXREPEAT_ST` | S軸T軸両方向にリピート

`GX_TEXFLIP_NONE` | フリップしない
`GX_TEXFLIP_S` | S軸方向にフリップ
`GX_TEXFLIP_T` | T軸方向にフリップ
`GX_TEXFLIP_ST` | S軸T軸両方向にフリップ

`GX_TEXPLTTCOLOR0_TRNS` | カラー0を透明とみなす
`GX_TEXPLTTCOLOR0_USE` | パレットのカラー0設定値が有効

以下に列挙型の型定義を示しておきます。

    typedef enum
    {
        GX_TEXFMT_NONE = 0,
        GX_TEXFMT_A3I5 = 1,
        GX_TEXFMT_PLTT4 = 2,
        GX_TEXFMT_PLTT16 = 3,
        GX_TEXFMT_PLTT256 = 4,
        GX_TEXFMT_COMP4x4 = 5,
        GX_TEXFMT_A5I3 = 6,
        GX_TEXFMT_DIRECT = 7
    }
    GXTexFmt;

    #define GX_TEXFMT_ALPHA ((GXTexFmt)GX_TEXFMT_A5I3) // Obsolete name

    typedef enum
    {
        GX_TEXGEN_NONE = 0,
        GX_TEXGEN_TEXCOORD = 1,
        GX_TEXGEN_NORMAL = 2,
        GX_TEXGEN_VERTEX = 3
    }
    GXTexGen;

    typedef enum
    {
        GX_TEXSIZE_S8 = 0,
        GX_TEXSIZE_S16 = 1,
        GX_TEXSIZE_S32 = 2,
        GX_TEXSIZE_S64 = 3,
        GX_TEXSIZE_S128 = 4,
        GX_TEXSIZE_S256 = 5,
        GX_TEXSIZE_S512 = 6,
        GX_TEXSIZE_S1024 = 7
    }
    GXTexSizeS;

    typedef enum
    {
        GX_TEXSIZE_T8 = 0,
        GX_TEXSIZE_T16 = 1,
        GX_TEXSIZE_T32 = 2,
        GX_TEXSIZE_T64 = 3,
        GX_TEXSIZE_T128 = 4,
        GX_TEXSIZE_T256 = 5,
        GX_TEXSIZE_T512 = 6,
        GX_TEXSIZE_T1024 = 7
    }
    GXTexSizeT;

    typedef enum
    {
        GX_TEXREPEAT_NONE = 0,
        GX_TEXREPEAT_S = 1,
        GX_TEXREPEAT_T = 2,
        GX_TEXREPEAT_ST = 3
    }
    GXTexRepeat;

    typedef enum
    {
        GX_TEXFLIP_NONE = 0,
        GX_TEXFLIP_S = 1,
        GX_TEXFLIP_T = 2,
        GX_TEXFLIP_ST = 3
    }
    GXTexFlip;

    typedef enum
    {
        GX_TEXPLTTCOLOR0_USE = 0,
        GX_TEXPLTTCOLOR0_TRNS = 1
    }
    GXTexPlttColor0;

## 参照

G3*_TexPlttBase, G3*_TexCoord

## 履歴

Ver. 2004/01/19