現在地 >> メニュー >> 基本編09 >> ディスプレイリスト

<ディスプレイリスト>


「ディスプレイリスト」を使うことによって、
「ソースコード」を短くでき、「描画の高速化」をはかることができる。

「高速描画」ができる理由


「ディスプレイリスト」では、一連の「コマンドの呼び出し」をひとまとめて「メモリ」上に蓄える。
「再描画」の際、「メモリ」から「まとめて取り出す」ので、「描画の高速化」ができる。

(※普通の場合は、順次処理をしている)

ディスプレイリストの弱点


ディスプレイリストは1度コンパイルすると、修正できない。
動的な変更が必要な場合は、頂点配列VBOを使用する方がいい。

使い方

  1. ディスプレイリストを作成
  2. ディスプレイリストの内容を定義
  3. ディスプレイリストの呼び出し(描画部分)


ディプレイリストの作成、内容の定義


ディプレイリストはglGenLists()関数で作成する。
そして、「glNewList()関数」と「glEndList()関数」のあいだに「描画内容」を書く

[例]

GLuint DisplayList;  //

DisplayList = glGenLists(1);//ディスプレイリストを1つ作成

glNewList(DisplayList,GL_COMPILE); //コンパイルのみ
 ... //-- 描画内容を記述 --//...
glEndList();



メモ


「glNewList()関数」と「glEndList()関数」の間に記述したメモリに格納する処理が「コンパイル」と呼ばれる。
glNewList()関数の第2引数は
  • GL_COMPILE:コンパイルのみ
  • GL_COMPILE_AND_EXECUTE:コンパイルし、さらに実行(レンダリング)する
の2種類ある。



描画する


描画には、glCallLists()関数で呼び出す。


void display()
{
       ... ...
   glCallList(DisplayList);
        ... ...
}

... ...
glDeleteLists(DisplayList, 1); //不要になったら削除可能



サンプルコード >> ディスプレイリスト::まとめコード

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます