Ninja Library - テクスチャ関数

njSetTextureName

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

書式

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

引数

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

戻り値

なし

解説

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

Ninja2からPVRヘッダがあるメモリテクスチャをロードするときは attrにNJD_TEXATTR_TYPE_MEMORYを指定し、addrにテクスチャデータの先頭アドレスを設定できるように なりました。(従来通りの設定もできます) グローバルインデックスがない場合には、ファイルテクスチャと同様の方法で設定してください。

PVRヘッダのないメモリテクスチャの場合は、addrにnjSetTextureInfo関数で設定した NJS_TEXINFO構造体のポインタを設定します。 attrには、NJD_TEXATTR_TYPE_MEMORY、NJD_TEXATTR_GLOBALINDEXを設定し、 globalIndexにはグローバルインデックスを設定してください。

フレームバッファテクスチャを使用する場合は、addrにnjSetTextureInfo関数で設定した NJS_TEXINFO構造体のポインタを設定します。 attrには、NJD_TEXATTR_TYPE_SURFACE、NJD_TEXATTR_GLOBALINDEXを設定し、 globalIndexにはグローバルインデックスを設定してください。

レンダテクスチャ、YUV420テクスチャを使用する場合は、addrにnjSetTextureInfo関数で 設定したNJS_TEXINFO構造体のポインタを設定します。 attrには、NJD_TEXATTR_TYPE_SURFACE、NJD_TEXATTR_GLOBALINDEXを設定し、 globalIndexにはグローバルインデックスを設定してください。


用例

/* ファイルテクスチャの設定 */
njSetTextureName(&texname[0],"file.pvr",0,NJD_TEXATTR_TYPE_FILE);

/* ファイルテクスチャとグローバルインデックス100番の設定 */
njSetTextureName(&texname[0],"file1.pvr",100,NJD_TEXATTR_TYPE_FILE|NJD_TEXATTR_GLOBALINDEX);

/* グローバルインデックスとPVRヘッダがあるメモリテクスチャの設定 */
njSetTextureName(&texname[0],pTexmem,0,NJD_TEXATTR_TYPE_MEMORY);
または
njSetTextureInfo(&info,pTexmem,0,0,0);
njSetTextureName(&texname[0],&info,0,NJD_TEXATTR_TYPE_MEMORY);

/* PVRヘッダがあるメモリテクスチャの設定 とグローバルインデックス100番の設定*/
njSetTextureName(&texname[0],pTexmem,100,NJD_TEXATTR_TYPE_MEMORY|NJD_TEXATTR_GLOBALINDEX);
または
njSetTextureInfo(&info,pTexmem,0,0,0);
njSetTextureName(&texname[0],&info,100,NJD_TEXATTR_TYPE_MEMORY|NJD_TEXATTR_GLOBALINDEX);

/* ヘッダがないメモリテクスチャの設定 とグローバルインデックス100番の設定*/
njSetTextureInfo(&info,pTexmem,NJD_TEXFMT_RGB_565 | NJD_TEXFMT_TWIDDLED, 128,128 );
njSetTextureName(&texname[0],&info,100,NJD_TEXATTR_TYPE_MEMORY|NJD_TEXATTR_GLOBALINDEX);

/* フレームバッファテクスチャを使用する設定 */
njSetTextureInfo(&info,NULL,NJD_TEXFMT_RGB_565 | NJD_TEXFMT_STRIDE, 1024,512 );
njSetTextureName(&texname[0],&info,100,NJD_TEXATTR_TYPE_SURFACE|NJD_TEXATTR_GLOBALINDEX);

/* レンダテクスチャ,YUV420テクスチャを使用する設定 */
njSetTextureInfo(&info,NULL,NJD_TEXFMT_RGB_565 | NJD_TEXFMT_STRIDE, 1024,512 );
njSetTextureName(&texname[0],&info,100,NJD_TEXATTR_TYPE_SURFACE|NJD_TEXATTR_GLOBALINDEX);

ただし、デフォルトのnuLoadTexture,nuLoadTextureNumで使用できる設定。


備考

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

参照

njSetTextureInfo() テクスチャ情報構造体へのデータのセット

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