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() システム構成の設定