##### Kamui2 Library - 構造体/その他のデータ型

# KMIMAGECONTROL

イメージコントロール構造体

### 定義

>     typedef struct _tagKMIMAGECONTROL
>     {
>          KMBLENDINGMODE nSRCBlendingMode;
>          KMBLENDINGMODE nDSTBlendingMode;
>          KMBOOLEAN bSRCSelect;
>          KMBOOLEAN bDSTSelect;
>          KMFOGMODE nFogMode;
>          KMBOOLEAN bColorClamp;
>          KMBOOLEAN bUseAlpha;
>          KMBOOLEAN bIgnoreTextureAlpha;
>          KMFLIPMODE nFlipUV;
>          KMCLAMPMODE nClampUV;
>          KMFILTERMODE nFilterMode;
>          KMBOOLEAN bSuperSampleMode;
>          KMDWORD dwMipmapAdjust;
>          KMTEXTURESHADINGMODE nTextureShadingMode;
>          KMDWORD dwPaletteBank;
>          PKMSURFACEDESC pTextureSurfaceDesc;
>     }KMIMAGECONTROL,*PKMIMAGECONTROL;

### メンバ

> NSRCBlendingMode | ソースのブレンディングモード
> NDSTBlendingMode | ディスティネーションのブレンディングモード
> BSRCSelect | セカンダリーアキュムレーションバッファ選択フラグ
> bDSTSelect | セカンダリーアキュムレーションバッファ選択フラグ
> nFogMode | フォグモード
> bColorClamp | カラークランプモードのフラグ
> bUseAlpha | アルファのフラグ
> bIgnoreTextureAlpha | テクスチャアルファのフラグ
> NFlipUV | テクスチャフリップモード
> nClampUV | テクスチャクランプモード
> nFilterMode | フィルターモード
> bSuperSampleMode | スーパーサンプルモードのフラグ
> dwMipmapAdjust | ミップマップ補正値
> NtextureShadingMode | テクスチャシェーディングモード
> dwPaletteBank | パレットバンク番号
> pTextureSurfaceDesc | テクスチャサーフェスデスクプリタ

### 解説

> メンバ nSRCBlendingModeは、ソース側（ポリゴン）のブレンディングモードを格納します。

> メンバ nDSTBlendingModeは、ディスティネーション側（ピクセルバッファ）のブレンディングモードを格納します。ピクセルのブレンディング処理はSRCおよびDSTのRGBA値が混合されDSTに書き戻されます。

> DST = SRC ｘ SRC ブレンディング係数 ＋ DST ｘ DST ブレンディング係数

> 定義 | 意味（RGBAブレンディング係数）
> KM_BOTHINVSRCALPHA | NSRCBlendingMode をKM_INVSRCALPHA 、 NDSTBlendingMode をKM_SRCALPHAにします
> KM_BOTHSRCALPHA | NSRCBlendingMode をKM_SRCALPHA 、 NDSTBlendingMode をKM_INVSRCALPHAにします
> KM_DESTALPHA | (Ad, Ad, Ad, Ad)
> KM_DESTCOLOR | ブレンディング結果を(Rd, Gd, Bd, Ad)にします。 NSRCBlendingModeでのみ有効。
> KM_INVDESTALPHA | (1-Ad, 1-Ad, 1-Ad, 1-Ad)
> KM_INVDESTCOLOR | ブレンディング結果を(1-Rd, 1-Gd, 1-Bd, 1-Ad)にします。 NSRCBlendingModeでのみ有効。
> KM_INVSRCALPHA | (1-As, 1-As, 1-As, 1-As)
> KM_INVSRCCOLOR | ブレンディング結果を(1-Rs, 1-Gs, 1-Bs, 1-As)にします。 nDSTBlendingModeでのみ有効。
> KM_SRCALPHA | (As, As, As, As)
> KM_SRCCOLOR | ブレンディング結果を(Rs, Gs, Bs, As)にします。 nDSTBlendingModeでのみ有効。
> KM_ONE | (1, 1, 1, 1)
> KM_ZERO | (0, 0, 0, 0)

> メンバ bSRCSelectおよび bDSTSelectは、 Tri-LinearポリゴンおよびBump Mappied ＋Textureｄポリゴンを半透明ポリゴンにする場合にのみ使用します。 通常はFALSEを指定してください。

> メンバ nFogModeには、フォグモードを格納します。

> 定義 | 意味
> KM_FOGTABLE | フォグテーブルを使用します。
> KM_FOGVERTEX | Offset Colorのアルファ値をフォグ値とします。Offset Colorの無い頂点データでは意味を持ちません。
> KM_NOFOG | フォグを使用しません。
> KM_FOGTABLE_2 | ポリゴンのRGBA値をそれぞれフォグのRGBA値に置き換えます。

> メンバ ｂColorClampは、カラークランプを行う場合にTRUEを指定します。

> メンバ ｂUseAlphaは、アルファ係数を有効にする場合にTRUEを指定します。

> メンバ ｂIgnoreTextureAlphaは、アルファ付きテクスチャのアルファ係数を無効にしたい場合にTRUEを指定します。

> メンバ nFlipUVには、 テクスチャーのフリップモードを格納します。

> 定義 | 意味
> KM_NOFLIP | フリップしない
> KM_FLIP_V | Vフリップを行う
> KM_FLIP_U | Uフリップを行う
> KM_FLIP_UV | UV共にのフリップを行う

> メンバ nClampUVには、 テクスチャークランプモードを格納します。

> 定義 | 意味
> KM_NOCLAMP | クランプしない
> KM_CLAMP_V | Vクランプを行う
> KM_CLAMP_U | Uクランプを行う
> KM_CLAMP_UV | UV共にクランプを行う

> nFilterModeには、 テクスチャーのフィルターモードを格納します。

> 定義 | 意味
> KM_POINT_SAMPLE | テクスチャーのフィルタリングを行わない
> KM_BILINEAR | バイリニアフィルタリングを行う
> KM_TRILINEAR_A | トライリニアフィルタリング使用時に「PASS A」ポリゴンであることを指定する
> KM_TRILINEAR_B | トライリニアフィルタリング使用時に「PASS B」ポリゴンであることを指定する

> メンバ ｂSuperSampleModeは、テクスチャーのスーパーサンプル（Anisotropic Filter）を有効にする場合にTRUEを指定します。 メンバ ｄｗMipmapAdjustには、 テクスチャーのMIPMAPレベル係数に乗算される値を４ビット固定少数点値（整数２ビット、少数２ビット）で格納する。通常は１。０（０１００）を指定します。０（００００）は指定してはいけません。 メンバ nTextureShadingModeには、 テクスチャーシェーディングモードを格納します。

> 定義 | 意味
> KM_DECAL | PIXRGB = TEXRGB + OFFSETRGB PIXA = TEXA
> KM_MODULATE | テクスチャカラー値にShadingカラー値を乗算する。テクスチャα値はShadingα値に置き換える。PIXRGB = COLRGB * TEXRGB + OFFSETRGBPIXA = TEXA
> KM_DECAL_ALPHA | テクスチャカラー値を、テクスチャα値にしたがってShadingカラー値とブレンドする。PIXRGB = (TEXRGB * TEXA) + (COLRGB *(1- TEXA) ) + OFFSETRGBPIXA = COLA
> KM_MODULATE_ALPHA | テクスチャカラー値にShadingカラー値を乗算する。テクスチャα値にはShadingα値を掛ける。PIXRGB= COLRGB * TEXRGB + OFFSETRGBPIXA = COLA * TEXA

> メンバ dwPaletteBankには、 パレットテクスチャのパレットエントリーバンク番号を格納します。

> メンバ pTextureSurfaceDescには、テクスチャサーフェスディスクプリタへのポインタを格納します。

KMIMAGECONTROL

COPYRIGHT © NEC Corporation / © SEGA ENTERPRISES, LTD., 1998-2000