KMSTATUS kmInitStripContext( dwIndex, pStripContext )
KMDWORD dwIndex
PKMVOID pStripContext
dwIndex (入力)インデックス pStripContext (出力)ストリップコンテキストへのポインタ
KMSTATUS_SUCCESS 成功 KMSTATUS_INVALID_ADDRESS pStripContextが不正(NULL) KMSTATUS_INVALID_SETTING pStripContextのサイズ設定が不正
KMSTRIPCONTEXT構造体またはKMTWOVOLUMESTRIPCONTEXT構造体で設定されるストリップコンテキストを初期化します。kmRegisterDefaultStripContext()関数でユーザー登録したストリップコンテキストを使用する方法とKamui2のシステムが提供する基本ストリップコンテキストを使用する方法があります。
引数 dwIndexには、使用するインデックスを設定します。 システムで用意している基本ストリップコンテキストを使用する場合で、Polygonの場合は下記の設定フラグとListTypeのOR設定で指定します。
定義 意味 KM_STRIPCONTEXT_SYS_FLAT FlatShadingの基本設定 KM_STRIPCONTEXT_SYS_GOURAUD GouraudShadingの基本設定
(例)
KM_STRIPCONTEXT_SYS_GOURAUD | KM_OPAQUE_POLYGON
OpaquePolygonのGouraudShading基本設定を使用します。システムで用意している基本ストリップコンテキストを使用する場合で、 Modifierの場合は、下記の設定フラグとListTypeのOR設定で指定します。
定義 意味 KM_STRIPCONTEXT_SYS_NORMAL_MODIFIER 通常(最初と最後を除く)のModifier基本設定 KM_STRIPCONTEXT_SYS_INCLUDE_FIRST_MODIFIER 最初のINCLUDE用Modifier基本設定 KM_STRIPCONTEXT_SYS_EXCLUDE_FIRST_MODIFIER 最初のEXCLUDE用Modifier基本設定 KM_STRIPCONTEXT_SYS_INCLUDE_LAST_MODIFIER 最後のINCLUDE用Modifier基本設定 KM_STRIPCONTEXT_SYS_EXCLUDE_LAST_MODIFIER 最後のEXCLUDE用Modifier基本設定
(例)
KM_STRIPCONTEXT_SYS_INCLUDE_LAST_MODIFIER | KM_OPAQUE_MODIFIER
OpaqueModifierの最後のINCLUDE用Modifier基本設定を使用します。kmRegisterDefaultStripContext()関数で登録したユーザー定義ストリップコンテキストを使用する場合は、次の値を指定します。
引数 pStripContextには、使用するストリップコンテキスト構造体へのポインタを指定します。
- KM_STRIPCONTEXT_USER00
- KM_STRIPCONTEXT_USER01
- KM_STRIPCONTEXT_USER02
- KM_STRIPCONTEXT_USER03
- KM_STRIPCONTEXT_USER04
- KM_STRIPCONTEXT_USER05
- KM_STRIPCONTEXT_USER06
- KM_STRIPCONTEXT_USER07
- KM_STRIPCONTEXT_USER08
- KM_STRIPCONTEXT_USER09
使用するVertexTypeによって下記のようになります。
■基本ストリップコンテキストの設定
- VertexType00〜08,15,16を使用する場合 KMSTRIPCONTEXT構造体へのポインタを指定します。
- VertexType09〜14(2パラメータ)を使用する場合 KMTWOVOLUMESTRIPCONTEXT構造体へのポインタを指定します。
システムで用意している基本ストリップコンテキストの設定を下記に示します。
メンバ 設定値 pStripContext->StripControl.nListType 指定したListType設定 pStripContext->StripControl.nUserClipMode KM_USERCLIP_DISABLE pStripContext->StripControl.nShadowMode KM_NORMAL_POLYGON pStripContext->StripControl.nIntensityMode KM_INTENSITY pStripContext->StripControl.bOffset KM_FALSE pStripContext->StripControl.bGouraud 指定したShadingMode設定 pStripContext->ObjectControl.nDepthCompare KM_GREATER pStripContext->ObjectControl.nCullingMode KM_NOCULLING pStripContext->ObjectControl.bZWriteDisable KM_FALSE pStripContext->ObjectControl.bDCalcControl KM_FALSE pStripContext->ObjectControl.dwModifierInstruction 指定したModifier設定
KM_INTENSITY_BASE/KM_INTENSITY_BASE_2ND/KM_INTENSITY_OFFSET共通
メンバ 設定値 pStripContext->type.intensity.Face[XX].fAlpha 1.0f pStripContext->type.intensity.Face[XX].fRed 1.0f pStripContext->type.intensity.Face[XX].fGreen 1.0f pStripContext->type.intensity.Face[XX].fBlue 1.0f
KM_IMAGE_PARAM1/KM_IMAGE_PARAM2共通
メンバ 設定値 pStripContext->ImageControl[XX].nSRCBlendingMode KM_ONE(TransPolygon使用時はKM_SRCALPHA) pStripContext->ImageControl[XX].nDSTBlendingMode KM_ZERO(TransPolygon使用時はKM_INVSRCCOLOR) pStripContext->ImageControl[XX].bSRCSelect KM_FALSE pStripContext->ImageControl[XX].bDSTSelect KM_FALSE pStripContext->ImageControl[XX].nFogMode KM_NOFOG pStripContext->ImageControl[XX].bColorClamp KM_FALSE pStripContext->ImageControl[XX].bUseAlpha KM_FALSE(TransPolygon使用時はKM_TRUE) pStripContext->ImageControl[XX].bIgnoreTextureAlpha KM_FALSE pStripContext->ImageControl[XX].nFlipUV KM_NOFLIP pStripContext->ImageControl[XX].nClampUV KM_NOCLAMP pStripContext->ImageControl[XX].nFilterMode KM_POINT_SAMPLE pStripContext->ImageControl[XX].bSuperSampleMode KM_FALSE pStripContext->ImageControl[XX].dwMipmapAdjust KM_MIPMAP_D_ADJUST_1_00 pStripContext->ImageControl[XX].nTextureShadingMode KM_MODULATE(TransPolygon使用時はKM_MODULATE_ALPHA) pStripContext->ImageControl[XX].dwPaletteBank 0 pStripContext->ImageControl[XX].pTextureSurfaceDesc NULL
KMSTRIPCONTEXT() ストリップコンテキスト