njSetTextureName
テクスチャネーム構造体にデータをセットする

書 式

#include <Ninja.h>
void njSetTextureName(texname,addr,globalIndex,attr)
NJS_TEXNAME *texname
void *addr
Uint32 globalIndex
Uint32 attr

引 数

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