njLoadTexture | English
    ▲|INDEX|▼
テクスチャのロード

### 書　式

      #include <Ninja.h>
      Sint32 njLoadTexture(texlist);
      NJS_TEXLIST *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,0x20800);

      /* 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()

njLoadTexture |
    ▲|INDEX|▼