##### 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