njLoadTexture
テクスチャのロード(完了復帰)

書 式

#include <Ninja.h>
Sint32 njLoadTexture(texlist);
NJS_TEXLIST *texlist

引 数

NJS_TEXLIST *texlist
NJS_TEXLIST構造体のポインタ

返 値

成功
1
失敗
-1

機 能

texlist構造体に設定したテクスチャをテクスチャメモリ、またはキャッシュメモリにロードする。

●テクスチャリストの作成について

1.テクスチャの数分だけ、テクスチャネーム構造体を設定する。

NJS_TEXNAME構造体
void       *filename
Uint16          attr
Uint32       texaddr

*filename
PVR形式のテクスチャファイルのときファイル名メモリからのロードのときNJS_TEXINFO構造体のポインタ

globalIndex
アプリケーション内で一意に決まるテクスチャのグローバル番号テクスチャリストが違っても、 グローバルインデックスが同じ時同じテクスチャとして扱われる。
使用できる値は 0 〜 0xFFFFFFFEまで。0xFFFFFFFFは使用しないこと

attr
テクスチャのロードもととロード先を指定する。それぞれのタグとOR演算をする

<ロード元>
NJD_TEXATTR_TYPE_FILE
PVR形式のファイルをロード。 *filenameでファイル名を指定する

NJD_TEXATTR_TYPE_MEMORY
メモリからロード。 *filenameでNJS_TEXINFO構造体のポインタを設定する。
NJS_TEXINFOの設定の仕方は下を参照のこと
<ロード先>(指定しないときテクスチャメモリにロードする)

NJD_TEXATTR_CACHE
キャッシュメモリにのみロードする

NJD_TEXATTR_BOTH
テクスチャメモリとキャッシュメモリの両方にロードする

<グローバルインデックスの指定>
NJD_TEXATTR_GLOBALINDEX
ファイル内のグローバルインデックスを使用しない場合指定します。

texaddr
attrでNJD_TEXATTR_GLOBALINDEXを指定した場合、初期化時にグローバルインデックスを指定します。
テクスチャロード後はNJS_TEXMEMLISTのアドレスが入ります。

2.テクスチャのロード元がメモリの場合NJS_TEXINFO構造体の設定が必要

NJS_TEXINFO構造体
void*           texaddr;
NJS_TEXSURFACE  texsurface;
 

texaddr
キャッシュテクスチャ指定時にアドレスを保存しておきます。

texsurface
テクスチャロード後データがセットされます。

NJS_TEXLIST構造体
NJS_TEXNAME     *textures;
Uint32          nbTexture;

textures
各テクスチャ情報設定したNJS_TEXNAME構造体のポインタを設定

nbTexture
テクスチャの数


用 例

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);

/* 2枚のテクスチャを設定する */
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にする */
njSetTexture(&texlist);

/* カレントテクスチャをtexlistの0番のテクスチャにする*/
njSetTextureNum(0);

備 考

この関数を実行する前に必ず、njInitTextureを実行しておく必要があります。
また、ファイルからロードする場合はnjInitTextureBuffer関数によりテクスチャバッファを設定する必要があります。
詳しくは、テクスチャドキュメントを参照してください。

関 連

njInitTextureBuffer
njInitTexture
njLoadTextureNum njLoadTextureReq

njLoadTexture

Copyright SEGA ENTERPRISES, LTD., 1998