Ninjaライブラリ - 描画関数

njDrawTextureMemList

テクスチャポリゴンを描画する。

書式

void njDrawTextureMemList( *polygon, count, tex, trans )
NJS_TEXTURE_VTX *polygon
Int count
Int tex
Int trans

引数

*polygonNJS_POLYGON_VTX構造体のポインタ
count頂点数
texテクスチャのグローバルインデックス
trans半透明有効(TRUE)、半透明無効(FALSE)

戻値

なし

解説

テクスチャポリゴンを描画します。頂点はストリップ形式にcount数入れます。 この関数を使用する前に、テクスチャの初期化、ロードが必要になります。 使用されるテクスチャはテクスチャメモリリストのtex番目のテクスチャです。 テクスチャ又はカラーに半透明を使用する場合はtransをTRUEに、半透明を使用しない 場合はFALSEにしてください。 他の描画関数のZ座標とは次の関係があります。

Z = 1 / ( -z )

z:他の描画関数の座標 (-65536.f < z < 0.f)

従ってZの有効範囲は 1.0f 〜 無限大です。


用例

/* 頂点の順は次のようになります。*/
/* 1 3             */
/* 2 4             */
NJS_TEXNAME texname[1]; 
NJS_TEXLIST texlist ={texname,1};
NJS_TEXMEMLIST tex[1];
NJS_TEXTURE_VTX poly[4];
Sint8 *texbuf;
/* テクスチャの初期設定 */
njInitTexture(tex,1);
texbuf = syMalloc(0x20800);
njInitTextureBuffer(texbuf,0x20800);
njSetTextureName(&texname[0],"file0.pvr",0,NJD_TEXATTR_TYPE_FILE|
      NJD_TEXATTR_GLOBALINDEX);
njLoadTexture(&texlist);
syFree(texbuf);
njSetTexture(&texlist);
poly[0].x = 100.f;
poly[0].y = 100.f;
poly[0].z = 0.5f;
poly[0].u = 0.f;
poly[0].v = 0.f;
poly[0].col = 0xFFFFFFFF;
poly[1].x = 100.f;
poly[1].y = 300.f;
poly[1].z = 0.5.f;
poly[1].u = 0.f;
poly[1].v = 1.f;
poly[1].col = 0xFFFFFFFF;
poly[2].x = 300.f;
poly[2].y = 100.f;
poly[2].z = 0.5f;
poly[2].u = 1.f;
poly[2].v = 0.f;
poly[2].col = 0xFFFFFFFF;
poly[3].x = 300.f;
poly[3].y = 300.f;
poly[3].z = 0.5f;
poly[3].u = 1.f;
poly[3].v = 1.f;
poly[3].col = 0xFFFFFFFF;
/* テクスチャメモリリスト0番のテクスチャをポリゴンに貼る */
njDrawTextureMemList( poly, 4, 0, FALSE);

参照

njDrawTexture()

njDrawTextureMemList
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998