Ninja Library - テクスチャ関数

njEntryTextureManageNum

テクスチャリストにテクスチャ情報を登録する

書式

Sint32 njEntryTextureManageNum( texlist, n, globalIndex, bank, pvrh, texmng_no )
NJS_TEXLIST *texlist
Sint32 n
Uint32 globalIndex
Uint32 bank
NJS_PVRHEADERDATA *pvrh
Sint32 *texmng_no

引数

texlist   テクスチャリスト
 テクスチャ番号
globalIndex   グローバルインデックス番号
bank   バンク番号
pvrh   PVRヘッダ構造体
texmng_no   テクスチャマネージメント番号

戻り値

 1   成功
−1   失敗

解説

グローバルインデックス番号、バンク番号、PVRヘッダ構造体で 与えられたテクスチャをテクスチャ番号n番のテクスチャとして 登録し、登録したテクスチャマネージメント領域の番号を texmng_noに返します。


用例


Sint32 nuLoadMemoryTexture(NJS_TEXLIST *texlist,Uint32 n)
{
	Sint32 ret;
	Uint32 globalIndex;
	Uint32 globalIndex0;
	Uint32 bank;
	NJS_PVRHEADERDATA pvrh;
	Sint8 * tex_start;
	Sint32 texmng_no;
	NJS_TEXINFO *info;
	

	njInitTextureErrStat();
	/*
		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;
	}

	/* filenameにメモリテクスチャが設定されているかリードしてみる */
	tex_start = njLoadPvrHeader(&pvrh,&globalIndex,(Sint8*)texlist->textures[n].filename);
	if(tex_start == NULL){
		/* filenameになかった場合は、Ninja1までと同じ設定になっているはず */
		tex_start = njLoadPvrHeader(&pvrh,&globalIndex,((NJS_TEXINFO*)texlist->textures[n].filename)->texaddr);
		if(tex_start == NULL){
			/* これでもヘッダが確認できなかった場合は、ヘッダ情報はないとみなす */
			info = (NJS_TEXINFO*)texlist->textures[n].filename;
			pvrh.nWidth = info->texsurface.nWidth;
			pvrh.nHeight = info->texsurface.nHeight;
			pvrh.nTextureType = info->texsurface.Type;
			tex_start = ((NJS_TEXINFO*)texlist->textures[n].filename)->texaddr;
		}
	}

	if(globalIndex0 != NJD_GLOBAXINDEX_FIRST_VAL){
		globalIndex = globalIndex0;
	}

	/* テクスチャ番号n番にテクスチャを登録する */
	ret = njEntryTextureManageNum(texlist,n,globalIndex,bank,&pvrh,&texmng_no);
	
	if(ret)	return ret;

	if(njLoadTextureManageNum(texmng_no,tex_start) < 0){
		njReleaseTextureManageNum(texmng_no);
		/* テクスチャロードエラー */
		return -1;
	}

	while(njLoadTextureFinishDMA() != 1);
	
	return 1;
}


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