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

njSetTextureName

テクスチャネーム構造体にファイル名をセット

書式

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

引数

*texnameNJS_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