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

kmCreateFixedTextureArea

固定テクスチャ領域の確保

書式

KMSTATUS kmCreateFixedTextureArea( 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   固定テクスチャ領域の総容量が4MBを越えた

解説

kmSetSystemConfiguration()関数を発行しても失われない、固定テクスチャ領域を確保します。

引数pSurfaceDescは、KMSURFACEDESC 型の構造体へのポインタです。 この構造体には、Kamuiによってサーフェス情報が返されます。 戻り値にKMSTATUS_NOT_ENOUGH_MEMORYが返された場合には不定となります。

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

引数nTextureTypeには、テクスチャの形式を指定します。 詳しくは、kmCreateTextureSurface()関数の説明 をご参照ください。

固定テクスチャ領域は、アプリケーション全体で使用するフォントテクスチャなどを置く領域として使用できます。 これで確保した領域は kmFreeFixedTextureArea()関数でしか解放できません。 また、固定テクスチャ領域は、システムに1つしか確保することができません。 実際の固定テクスチャ領域の確保は、次に kmSetSystemConfiguration()関数を発行したときに行われます。

この関数の発行後は、必ず kmSetSystemConfiguration()関数を発行する必要があります。 また、固定テクスチャ領域へのデータ読み込みは、kmSetSystemConfiguration()関数の後に行わなければなりません。

よって、関数の呼び出し順序は、以下のようになります。
(1) kmCreateFixedTextureArea()関数で固定テクスチャ領域を確保。
(2) kmSetSystemConfiguration()関数発行。実際の固定領域確保はここで行われる。
(3) kmLoadTexture()関数などで、固定テクスチャ領域へテクスチャデータを読み込む。

kmSetSystemConfiguration()関数を発行する前に、kmFreeFixedTextureArea()関数が発行された場合は、それまでに発行されたkmCreateFixedTextureArea()関数は無効となります。 この場合は固定テクスチャ領域は確保されません。

また、kmSetSystemConfiguration()関数を発行する前に、複数回のkmCreateFixedTextureArea()関数を実行した場合は、最後に実行した kmCreateFixedTextureArea()関数のみが有効となります。


備考

ここで確保した領域はガベージコレクションの対象とはなりません。 また、固定テクスチャ領域の容量は4MByteを越えることはできません。

参照

kmCreateTextureSurface()
 テクスチャ用サーフェスの確保
kmFreeFixedTextureArea()
 固定テクスチャ領域の解放
kmLoadTexture()
 テクスチャデータの読み込み
kmSetSystemConfiguration()
 システム構成の設定

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