ディスプレイリスト

2010年1月7日

ファイル

28-list.tar.gz

見所

ブレンドのプログラムをディスプレイリストを使うように書き直しただけなので、見た目はブレンドのものと同じです。

内容

ディスプレイリストを使ってみましょう。ディスプレイリストは、OpenGL の一連の描画命令を保存し、再利用するための仕組みです。下のようにします。

	glNewList(LIST_POLYGON, GL_COMPILE);
	glPushMatrix();

	glBegin(GL_POLYGON);
	glVertex2f(-0.3, -0.5);
	glVertex2f(0.3, -0.5);
	glVertex2f(0.5, 0.);
	glVertex2f(0., 0.45);
	glVertex2f(-0.5, 0.);
	glEnd();

	glPopMatrix();
	glEndList();

多角形の描画命令を glNewList() と glEndList() ではさんだだけです。glNewList() の第 1 引数に渡す整数がリストの名前になります。リストの呼び出しは以下のようにします。

	glPushMatrix();
	glTranslatef(-0.25, 0., 0.5);
	glColor3f(0., 1., 0.);
	glCallList(LIST_POLYGON);
	glPopMatrix();

glCallList() によって多角形の描画命令が呼び出されます。

ディスプレイリストは関数とどう違うのかというと、ディスプレイリストは命令を実行しやすい形に変換してから保存するらしいので、関数より実行効率がよいようです。

OpenGL プログラミング 目次へ