void njInitTextureErrStat(void)
なし
なし
テクスチャエラー情報設定変数、_nj_texerr_を初期化します。 各テクスチャ関数内部ではじめに実行します。 ただし、テクスチャLow関数群(njXXXXXLowXX)やテクスチャ マネージメントナンバー関数群(njXXXXTextureManageNum)では 実行しませんので使用する前に、初期化すると_nj_texerr_の エラー値を参照することができます。
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; } 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; }