OpenGL: アニメーション

“GLでアニメーションをさせる=display関数を複数回呼ぶ”という事らしい.
glutMainLoop関数は無限ループだけど,glutDisplayFunc関数はウィンドウを再描画するイベントが発生した時しかコールされないそうだ.
そこで,アニメーションのようにdisplay関数を連続的にコールしたい時はウィンドウの再描画を実行する関数glutPostRedisplay関数を呼ぶ必要があるそうだ.
このglutPostRedisplay関数を,CPUが暇な時に実行するようにglutIdleFunc関数で設定すればいい.

コードは以下のようになる.
void idle(){
glutPostRedisplay();
}

main(…){

glutIdleFunc(idle);

}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s