##### Ninjaライブラリ - テクスチャ関数

# njSetTextureParam

テクスチャパラメータの設定

### 書式

  void njSetTextureParam( texmemlist )
  NJS_TEXMEMLIST *texmemlist

### 引数

  texmemlist | テクスチャメモリリストのポインタ

### 戻値

  なし

### 解説

  NJS_TEXMEMLIST構造体のtspparambufferとtexparambufferを設定します。 設定時に参照されるデータはNJS_TEXSURFACE構造体のPixelFormat、nWidth、nHeight、fSurfaceFlags、pSurfaceです。

### 用例

      Mipmapのサイズを強引に変えて表示する関数の例です。ただし8以上だけです(1,2,4は表示できない)

      元の値からtexinfo以下を変更する場合はテクスチャをリリースするときに元に戻してください。
      このサンプルの場合は変更していないので(コピーしているので)関係ありません。

      void njSetTextureMipmapSize( NJS_TEXMEMLIST *texmemlist, Uint32 Size )
      {
        NJS_TEXMEMLIST tml;

        /* ミップマップのテクスチャかを確認する */
        if(texmemlist->texinfo.texsurface.fSurfaceFlags & NJD_SURFACEFLAGS_MIPMAPED){
          /* 指定したサイズ以上の大きさのテクスチャかを判断する */
          if(texmemlist->texinfo.texsurface.nWidth >= Size){
            /* サイズを設定する */
            tml.texinfo.texsurface.nWidth = Size;
            tml.texinfo.texsurface.nHeight = Size;
            /* テクスチャのサイズを計算する 本当は必要ない*/
            tml.texinfo.texsurface.TextureSize
              = njCalcTextureSize(Size,Size,tml.texinfo.texsurface.Type >> 16);
            /* PixelFormatを設定する */
            tml.texinfo.texsurface.PixelFormat = texmemlist->texinfo.texsurface.PixelFormat;
            /* オフセットを設定する */
            tml.texinfo.texsurface.pSurface
              = (Uint32*)((Uint32)texmemlist->texinfo.texsurface.pSurface);
            /* サーフェスフラグを設定する */
            tml.texinfo.texsurface.fSurfaceFlags = texmemlist->texinfo.texsurface.fSurfaceFlags;
            /* テクスチャのパラメータ texparambuffer、tspparambufferを求める */
            njSetTextureParam(&tml);
            /* コピーする */
            texmemlist->texparambuffer = tml.texparambuffer;
            texmemlist->tspparambuffer = tml.tspparambuffer;
          }
        }
      }

### 備考

  データを変更するときは注意が必要です。 NJS_TEXSURFACE構造体のメンバを変更した場合、テクスチャリリース時には元に戻してください。

njSetTextureParam

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998