Ninja Library - テクスチャ関数

njReleaseTextureNumG

グローバルインデックス番号によるテクスチャメモリのリリース

書式

Sint32 njReleaseTextureNumG( globalIndex )
Uint32 globalIndex

引数

globalIndex   グローバルインデックス番号

戻り値

 1   成功
−1   失敗

解説

グローバルインデックス番号globalIndexのテクスチャを リファレンスカウンタがゼロになるときテクスチャメモリから リリースします。テクスチャをリリースするとき、テクスチャ管理領域 (テクスチャマネージメント、テクスチャシステム領域)も初期化します。

リリースしたテクスチャのtexname.texaddrのゼロクリアはユーザーが行ってください。 この関数を使用した後、ゼロクリアを行わずにテクスチャロードした後に、njReleaseTextureや njReleaseTextureNum関数を使用すると違うテクスチャがリリースされます。

Ninja2からロードしたテクスチャには、texlist.textures[i].attrに NJD_TEXATTR_REGISTRATIONを設定しています。njReleaseTextureNumG関数で テクスチャをリリースした場合、このフラグを消すことができないので 次にテクスチャをロードするときには、NJD_TEXATTR_REGISTRATIONを 消してからロードしてください。


用例

NJS_TEXNAME texname[2];
NJS_TEXLIST texlist ={texname,2};
Sint8 *texbuf;
/* Prepare to read in two textures */
NJS_TEXMANAGE texmng[4];
NJS_TEXSYSTEM texsys[4];

njInitTextureEx(texmng,4,texsys,4);
texbuf = syMalloc(0x20000);
nuInitTextureBuffer(texbuf,0x20000);
njSetTextureName(&texname[0],"file1.pvr",100,
	NJD_TEXATTR_TYPE_FILE|NJD_TEXATTR_GLOBALINDEX);
njSetTextureName(&texname[1],"file2.pvr",200,
	NJD_TEXATTR_TYPE_FILE|NJD_TEXATTR_GLOBALINDEX);
/* Load texture */
nuLoadTexture(&texlist);
syFree(texbuf);
/* Set current texture list*/
njSetTexture(&texlist);
/* Release the global index #100 texture 
   in the texlist file1.pvr */
njReleaseTextureNumG(100);
texname[0].texaddr = 0;

備考

ロードした他のテクスチャリストで同じテクスチャが登録されているときはすべてのテクスチャリストで解放しない限り、テクスチャメモリ上から解放されることはありません。

※グローバルインデックスが同一のものを同一のテクスチャとしています。詳しくは、テクスチャドキュメントを参照してください。


参照

njReleaseTextureAll() テクスチャメモリの全解放
njReleaseTexture() テクスチャメモリのリリース
njReleaseTextureNum() テクスチャ番号によるテクスチャメモリのリリース

njReleaseTextureNumG
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000