##### Ninja Library - テクスチャ関数

# njSearchTextureManageNum

グローバルインデックス番号とバンク番号によるテクスチャの検索

### 書式

> `Sint32 njSearchTextureManageNum( globalIndex, bank, nTextureType, texmng_no)
> Uint32 globalIndex
> Uint32 bank
> Uint32 nTextureType
> Sint32 *texmng_no
> `

### 引数

> globalIndex | グローバルインデックス番号
> bank | バンク番号
> nTextureType | テクスチャカテゴリーコード
> texmng_no | テクスチャマネージメント番号

### 戻り値

> 0 | 同じテクスチャが見つからない
> -1 | エラー（テクスチャマネージメント領域がない）
> 1 | 同じテクスチャが見つかった

### 解説

> カテゴリーコードがパレットテクスチャの場合、グローバルインデックス番号とバンク番号から同じテクスチャがすでにロードされているか検索します。

> グローバルインデックス番号とバンク番号が同じテクスチャが見つかった場合は そのテクスチャマネジメント番号を返し、テクスチャマネージメント領域、 テクスチャシステム領域のリファレンスカウンタに1を加えます。

> グローバルインデックス番号が同じでバンク番号が違うテクスチャが見つかったときには、 関数内部でテクスチャマネージメント領域を取得し、テクスチャ情報をコピーしてバンク番号を変更し取得したテクスチャマネージメント番号を返します。 そのとき、テクスチャマネージメント領域のリファレンスカウンタを1にし、 テクスチャシステム領域のリファレンスカウンタに１を加えます。 このときテクスチャマネージメント領域が取得できないときは、−1を返します。 同じテクスチャが見つからない場合は0を返します。

> パレットテクスチャ以外のカテゴリーコードの場合、同じグローバルインデックス番号の テクスチャが見つかった場合は、そのテクスチャマネージメント番号を返し、 テクスチャマネージメント領域、テクスチャシステム領域のリファレンス カウンタに1を加えます。同じテクスチャが見つからない場合は、0を返します。

### 用例

>     Sint32 nuLoadSysAreaTexture(NJS_TEXLIST *texlist,Uint32 n)
>     {
>     	Uint32 globalIndex;
>     	Uint32 globalIndex0;
>     	Uint32 bank;
>     	Sint32 texmng_no;
>     	NJS_TEXINFO *info;
>     	Sint32 ret;
>     	NJS_TEXMANAGE *texmanage;
>     	NJS_TEXSYSTEM *texsystem;
>     	/*
>     		NJD_TEXATTR_TEXCONTINUE,
>     		NJD_TEXATTR_GLOBALINDEX,
>     		NJD_TEXATTR_PALGLOBALINDEXの処理
>     	*/
>     	ret = njCheckAttrGlobalIndex(texlist,n,&globalIndex0,&bank);
>     	if(ret){
>     		/* 0以外の場合 */
>     		/*  1: NJD_TEXATTR_TEXCONTINUE*/
>     		/* -1: エラー                 */
>     		return ret;
>     	}

>     	if(globalIndex0 != NJD_GLOBAXINDEX_FIRST_VAL){
>     		globalIndex = globalIndex0;
>     	}
>     	else{
>     		globalIndex = texlist->textures[n].texaddr;
>     	}

>     	ret = njSearchTextureManageNum(globalIndex,bank,0,&texmng_no);

>     	switch(ret){
>     	case -1:
>     		return -1;
>     		break;
>     	case 0:
>     		texmng_no = njGetTexManageNum(&texmanage,&texsystem);
>     		if(texmng_no < 0){
>     			return -1;
>     		}
>     		texmanage->texsys = texsystem;
>     		if(globalIndex != 0xFFFFFFFF)
>     			texmanage->texsys->globalIndex = globalIndex;
>     		_nj_tex_count++;
>     		break;
>     		njLinkTexlist(texlist,n,texmng_no);
>     	}

>     	return 1;
>     }

njSearchTextureManageNum

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000