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 S軸方向に8テクセル
GX_TEXSIZE_S16 S軸方向に16テクセル
GX_TEXSIZE_S32 S軸方向に32テクセル
GX_TEXSIZE_S64 S軸方向に64テクセル
GX_TEXSIZE_S128 S軸方向に128テクセル
GX_TEXSIZE_S256 S軸方向に256テクセル
GX_TEXSIZE_S512 S軸方向に512テクセル
GX_TEXSIZE_S1024 S軸方向に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