Chapter4. 拡張関数


4.6 3Dグラフィックス関数

関数名
G3@TEXMAKE
機能
テクスチャの管理オブジェクトを生成する。
書式
G3@TEXMAKE( dx , dy )
《パラメーター》
dxint。テクスチャの幅
dyint。テクスチャの高さ
戻り値 テクスチャ番号
解説
生成が成功すると戻り値が0以外の数字となり、その数字がテクスチャ番号となる。テクスチャの管理オブジェクトの生成には以下の制限がある。
・高さ、幅ともに2のn乗のドットサイズでなくてはならない。
・縦、横のサイズを同じにする。(一部のハードは異なるサイズを使用できますが、互換性を考えると同じサイズを推奨します。)
・最大のサイズは256*256である。(一部のハードはこれ以上のサイズを使用できないので、256*256を推奨します。)
1つのテクスチャは複数のスプライトやメッシュに関連付ける事ができる。
テクスチャが必要なくなった時はG3@RELEASE関数で開放する事。ただし、開放をおこなってもスプライトやメッシュへ関連付けられている間は消滅せず、全てのスプライトやメッシュへの関連が外された時点で消滅される。テクスチャは部分的な矩形範囲で使用する事ができる。メモリの効率を考え、1つのテクスチャに複数の画像をまとめると効率が良い。
スプライトが必要なくなった時はG3@RELEASE関数で開放する事。

用例
キャラクタとして読み込んだ画像をテクスチャに使用してスプライトを表示する。
   CH=G@SETUP(640,480,16,1)
   GM=G@CHRLOAD("HAIKEI.bmp")                      //テクスチャに使用する画像読み込み
   TX=G3@TEXMAKE(256,256)                          //テクスチャの管理オブジェクトを生成
   G3@TEXFROMCHAR(TX,GM)                           //キャラクタオブジェクトの画像をテクスチャにコピー
   SP=G3@SPMAKE()                                  //スプライト管理オブジェクト作成
   G3@SPSET(SP,LG3_SP_TEX,TX)                      //スプライトにテクスチャ設定
   G3@SPSET(SP,LG3_SP_SRC,0,0,256,256)             //スプライトのテクスチャ領域設定
   G3@SPSET(SP,LG3_SP_DEST,320,240,0)              //スプライトの表示領域設定
   G3@SPSET(SP,LG3_SP_CKEY,1)                      //スプライトのカラーキー設定
   LOOP
     G@CHRCLEAR(CH)
     G3@SPDRAW(SP)                                 //スプライト表示
     G@FLIP()
   ENDLOOP