|
Allegro文脈 |
AllegroGL 文脈 | OpenGL文脈 |
---|---|---|---|
| テクスチャ番号の器を用意 GLuint tex; 「GLuint」は、OpenGLで使用するデータに用いられる形式。Int なので整数型 | ||
画像を用意 ビットマップ画像を用意して、テクスチャを生成する。 画像ファイルを読み込む 処理は Allegro が面倒みてくれる。 Allegro デフォルトでは pcx , bmp形式の 画像の読み込みに対応している。 BITMAP *bmp; bmp = load_bitmap ("mysha.pcx", 0); テクスチャ画像のサイズは、縦横それぞれ 「2のn乗ピクセル」であることに注意。 任意のサイズを使う場合は、 blit_strech 関数 などでサイズを合わせるなどする。 この段階で、ビットマップオブジェクト *bmp に対して 文字などを描画した場合 テクスチャにもそれが反映される。 | |||
| テクスチャの設定を行う // テクスチャ使用を有効にする glEnable (GL_TEXTURE_2D); // テクスチャの透過モードを設定する。 glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); |
||
ここでテクスチャ生成 面倒な処理は AllegroGLが肩代わりしてくれる。ここでは、ビットマップオブジェクトからテクスチャ(と関連するデータ)を生成する。 allegro_gl_make_texture関数を使う。 tex = allegro_gl_make_texture (bmp); |
|||
ビットマップ画像のメモリを再利用しない場合は、この段階でメモリを開放しても問題ない。 destroy_bitmap (bmp); |
テクスチャ貼付け | |||
テクスチャをポリゴンに貼付ける glEnable (GL_TEXTURE_2D); テクスチャを有効にする glBindTexture (GL_TEXTURE_2D, tex); glBegin(GL_QUAD); ポリゴンと テクスチャの 四隅 を関連付け。 glTexCoord2f (0, 0); glVertex3d(0, 3, 0); glTexCoord2f (1, 0); glVertex3d(0, -3 -3); : glEnd(); |
|||