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