Kamui2 Library - テクスチャ制御関数

kmCreateTextureSurface

テクスチャ用サーフェスの確保

書式

KMSTATUS kmCreateTextureSurface( pSurfaceDesc, nWidth, nHeight, nTextureType )
PKMSURFACEDESC pSurfaceDesc
KMINT32 nWidth
KMINT32 nHeight
KMTEXTURETYPE nTextureType

引数

pSurfaceDesc   (出力)取得するサーフェスディスクプリタへのポインタ
nWidth   (入力)テクスチャの横サイズ
nHeight   (入力)テクスチャの縦サイズ
nTextureType   (入力)テクスチャの形式

戻り値

KMSTATUS_SUCCESS   成功
KMSTATUS_INVALID_TEXTURE_TYPE   無効なテクスチャタイプを指定した
KMSTATUS_NOT_ENOUGH_MEMORY   メモリ容量が足りない

解説

テクスチャメモリ上にテクスチャ用サーフェスを確保します。

この関数ですべての形式のテクスチャサーフェスを確保することができます。 これで確保した領域は kmFreeTexture()関数で解放してください。

引数pSurfaceDescは、Surface情報を取得するKMSURFACEDESC型の構造体へのポインタです。 戻り値にKMSTATUS_NOT_ENOUGH_MEMORYが返された場合には不定となります。

引数nWidth、nHeightには、テクスチャの横サイズ、縦サイズを指定します。 MIPMAPを使用する場合にはトップレベルのテクスチャサイズを指定します。 指定する値は 8、16、32、64、128、256、512、1024のいずれかでなければなりません。

引数nTextureTypeには、テクスチャの形式を指定します。 以下のカテゴリコード、ピクセルフォーマットコードから一つずつ選び出し、論理和(or)して与えます。

■カテゴリコード

 定義   意味 
 KM_TEXTURE_TWIDDLED   Twiddledフォーマット 
 KM_TEXTURE_TWIDDLED_RECTANGLE   長方形Twiddledフォーマット 
 KM_TEXTURE_TWIDDLED_MM   TwiddledフォーマットMipmapあり 
 KM_TEXTURE_VQ   VQ圧縮形式 
 KM_TEXTURE_VQ_MM   VQ圧縮形式Mipmapあり 
 KM_TEXTURE_SMALLVQ   small VQ圧縮形式 
 KM_TEXTURE_SMALLVQ_MM   small VQ圧縮形式Mipmapあり 
 KM_TEXTURE_PALETTIZE4   4bppパレット形式 
 KM_TEXTURE_PALETTIZE4_MM    4bppパレット形式Mipmapあり 
 KM_TEXTURE_PALETTIZE   8bppパレット形式 
 KM_TEXTURE_PALETTIZE8_MM   8bppパレット形式Mipmapあり 
 KM_TEXTURE_RECTANGLE   矩形 
 KM_TEXTURE_STRIDE   矩形(ストライド指定) 

■ピクセルフォーマットコード
 定義   意味 
 KM_TEXTURE_1555   ARGB-1555形式 
 KM_TEXTURE_565   RGB-565形式 
 KM_TEXTURE_4444   ARGB-4444形式 
 KM_TEXTURE_YUV422   YUV-422形式 
 KM_TEXTURE_BUMP   バンプマップ 

注) パレット形式テクスチャ(KM_TEXTURE_PALETTIZED4、KM_TEXTURE_PALETTIZED4_MM、KM_TEXTURE_PALETTIZED8、KM_TEXTURE_PALETTIZED8_MM) の場合は、ピクセルフォーマットは指定できません。

パレット形式テクスチャのピクセルフォーマットは パレットの設定( kmSetPaletteMode()関数 )で指定します。

Kamuiでは、メモリアクセスの高速化のため、テクスチャのアドレスは極力2KByte境界に整列するように配置されます。 そのためフレームバッファの空き容量の合計が、確保しようとするテクスチャの容量分以上残っていても、 テクスチャサーフェスを作成できないことがあります。 この場合は kmGarbageCollectTexture()関数でガベージコレクションを行ってください。 なお、テクスチャサーフェスの先頭アドレスとサイズはKamuiによって32Byteアライメントされます。


備考

この関数は kmSetSystemConfiguration()関数の呼び出しの後に実行しなければいけません。 テクスチャメモリを効率的に使用するためのヒントとしては、 できるだけ多くのテクスチャサーフェスを同時に確保/解放するようにしてください。 また、フレームバッファ領域、ネイティブデータ領域の作成はテクスチャサーフェスの生成より前に呼び出し、 アプリケーション終了まで極力これらの解放・再作成を避けてください。

参照

kmGarbageCollectTexture()
 テクスチャメモリのガーベジコレクション
kmSetSystemConfiguration()
 システム構成の設定

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