PyOpenGL はじめました:OpenGL Utility Toolkit (GLUT)
PyOpenGL はじめました《記事一覧》
OpenGL Utility Toolkit (GLUT)
《著》小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2006/09/21 ● 第1版♪2009/04/07
■ 概要
GLUT を利用して、ウィンドウを開く(閉じる)方法を紹介します。
■ 関連記事
概要:GLUT
GLUT〔OpenGL Utility Toolkit〕は、特定のウィンドウシステムに依存しない、OpenGL のコードを記述するための API です。ここでは、Python バインディングについて解説します。
事例:C/GLUT
ウィンドウを開くだけなら、次のように記述します。
#includevoid display(void) {} int main(int argc, char *argv[]) { glutInit(&argc, argv); glutCreateWindow("Hello World"); glutDisplayFunc(display); glutMainLoop(); return 0; }
事例:Python/GLUT
C 言語の事例と同等のコードを、Python では、次のように記述します。
from OpenGL.GLUT import * from sys import argv def display(): pass if __name__ == '__main__': glutInit(argv) glutCreateWindow("Hello World") glutDisplayFunc(display) glutMainLoop()
プログラミング言語は違っても、C プログラマーなら、Python で記述したコードの概要は理解できるでしょう。大きな違いは、C のような main が必須でないことです。
glutDisplayFunc には、ウィンドウを再描画する関数 display を指定します。すると、ウィンドウを開いたり、背後に隠れていたウィンドウ(その一部)が前面に現れるときに、関数 display を呼び出します。ここでは、本体が空 pass なので何も表示されません。
これを実行すると、次のようなウィンドウが現れます。
これは、PyOpenGL 版の Hello World とも言うべきものです。ウィンドウ内には、何も描かれません。タイトルに "Hello World" と書かれているだけです。
何が問題か
% python2.5 example1-1.py -s0 ^Z [1]+ Stopped python2.5 example1-1.py -s0 % kill %1 [1]+ Stopped python2.5 example1-1.py -s0
デモを中断するには(バックグラウンド)プロセスを終了 kill させます。
》作業中です《
Tips:PyOpenGL
PyOpenGL/GLUT | GLUT API/英 | GLUT API/和 | Description |
---|---|---|---|
glutInit | 2.1 glutInit | 2.1 glutInit | initialize the GLUT library. ライブラリを初期化します |
glutCreateWindow | 4.1 glutCreateWindow | 4.1 glutCreateWindow | creates a top-level window. 最上位ウィンドウを生成します |
glutMainLoop | 3.1 glutMainLoop | 3.1 glutMainLoop | enters the GLUT event processing loop. イベント処理ループに入ります |
- http://pyopengl.sourceforge.net/documentation/manual-3.0/glBegin.xhtml
- http://pyopengl.sourceforge.net/documentation/manual-3.0/glClearColor.xhtml
- http://pyopengl.sourceforge.net/documentation/manual-3.0/glClear.xhtml
Last updated♪09/04/18