Ninjaライブラリ - テクスチャ関数

njSetTextureName

テクスチャ情報構造体へのファイル名のセット

書式

void njSetTextureName( *texname, *addr, globalIndex, attr ) 
NJS_TEXNAME *texname 
void *addr 
Uint32 globalIndex 
Uint32 attr 

引数

*texname   NJS_TEXNAME構造体のポインタ
*addr   ファイル名またはNJS_TEXINFO構造体のポインタ
globalIndex   グローバルインデックス
attr   テクスチャのアトリビュート

戻り値

なし

解説

ファイルからテクスチャをロードするときaddrにファイル名を設定します。 また、attrにはNJD_TEXATTR_TYPE_FILEを指定してください。 PVR形式のテクスチャで、グローバルインデックスをファイル内のグローバルインデックスを使用しない場合、またはPVR形式のテクスチャにグローバルインデックスのチャンクが無い場合、attrにNJD_TEXATTR_GLOBALINDEXを設定し、globalIndexにグローバルインデックスを設定してください。 メモリテクスチャの場合は、addrにnjSetTextureInfo関数で設定したNJS_TEXINFO構造体のポインタを設定します。 また、attrには、NJD_TEXATTR_TYPE_MEMORYをglobalIndexにはグローバルインデックスを指定してください。

用例

NJS_TEXNAME texname[2];
NJS_TEXLIST texlist ={texname,2};
/* 合計2つ分のテクスチャを読み込む準備をする */
NJS_TEXMEMLIST texmemlist[2];
Sint8 *texbuf;
njInitTexture(texmemlist,2);
texbuf = syMalloc(0x20800);
njInitTextureBuffer(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);
/* テクスチャをロードする */
njLoadTexture(&texlist);
syFree(texbuf);
/* カレントテクスチャリストをtexlistにする */
/* njLoadTexture関数の前に行っても問題はない */
njSetTexture(&texlist);
/* カレントテクスチャをtexlistの0番のテクスチャにする file1.pvr*/
njSetTextureNum(0);
    :
/*テクスチャ描画 file1.pvrのテクスチャで描画される */
    :

備考

ここで設定したグローバルインデックスはNJS_TEXNAME構造体のtexaddrにいったん保存され、テクスチャのロード時にNJS_TEXMEMLIST構造体のglobalIndexに渡されます。 そのとき、NJS_TEXNAME構造体のtexaddrは書き換えられてしまいます。 テクスチャをロードし、テクスチャをリリース、その後もう一度テクスチャをロードする場合には、もう一度設定し直してください。 詳しくは、テクスチャドキュメントを参照してください。

参照

njSetTextureInfo()

njSetTextureName
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999