Ninja Library - テクスチャ関数

njReleaseTexture

テクスチャメモリのリリース

書式

Sint32 njReleaseTexture( texlist )
NJS_TEXLIST *texlist

引数

*texlist   NJS_TEXLIST構造体のポインタ

戻り値

 1   成功
−1   失敗(テクスチャサーフェスが不正の場合)

解説

テクスチャリストtexlistのテクスチャメモリをリリースします。ただし、テクスチャサーフェスは リファレンスカウンタが0になるときにリリースします。 Ninja2からテクスチャリストにロードされていないテクスチャが存在する場合でも エラーを返しません。(不正なテクスチャサーフェスをロードした場合は、エラーになります)


用例

NJS_TEXNAME texname[2];
NJS_TEXNAME texname2[2];
NJS_TEXLIST texlist ={texname,2};
NJS_TEXLIST texlist2 ={texname2,2};
Sint8 *texbuf;
/* Prepare to read four 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",0,
	NJD_TEXATTR_TYPE_FILE|NJD_TEXATTR_GLOBALINDEX);
njSetTextureName(&texname[1],"file2.pvr",1,
	NJD_TEXATTR_TYPE_FILE|NJD_TEXATTR_GLOBALINDEX);
njSetTextureName(&texname2[0],"file1.pvr",0,
	NJD_TEXATTR_TYPE_FILE|NJD_TEXATTR_GLOBALINDEX);
njSetTextureName(&texname2[1],"file3.pvr",2,
	NJD_TEXATTR_TYPE_FILE|NJD_TEXATTR_GLOBALINDEX);
/* Load texture */
nuLoadTexture(&texlist);
nuLoadTexture(&texlist2);
syFree(texbuf);
/* Release the texture in texlist */
njReleaseTexture(&texlist);
/*
	Even if texlist is released, since file1.pvr is 
	in texlist2 also, file.pvr will not be released 
	from texture memory.
	** However file1.pvr cannot be read with texlist
	   unless it is loaded again.
*/

備考

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

参照

njReleaseTextureAll() テクスチャメモリの全解放
njReleaseTextureNum() テクスチャ番号によるテクスチャメモリのリリース
njReleaseTextureNumG() グローバルインデックス番号によるテクスチャメモリのリリース

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