MinGWでOpenGLやGLUTを使ってみる
Visual C++でGLUTを使う方法はたくさん書いてあっても、MinGWで使う方法はあまり無いので書いてみました。
「C:\MinGW」はMinGWをインストールしたフォルダに読み替えてください。
本家GLUTは更新が止まっているようなので後継というか互換というかのFreeGLUTを使います。
まず最初に、http://www.transmissionzero.co.uk/software/freeglut-devel/の「Download freeglut 2.6.0 for MinGW」をクリックしてzipファイルをダウンロードします。
2.6.0のところはバージョンアップで変わるかもしれませんが。
そのzipファイルの中に「freeglut」というフォルダがあります。
そのフォルダの中に「lib」というフォルダがあるので、その中にある、拡張子が「.a」となっているファイルを全て、
C:\MinGW\libの中のコピーします。
freeglutフォルダの中には「include」というフォルダもあります。
includeフォルダの中には「GL」というフォルダがあるので、そのフォルダをC:\MinGW\includeの中に入れます。すでにGLというフォルダがあると思いますが、上書きしてしまって大丈夫です。
最後にfreeglutフォルダの中のfreeglut.dllをどこかパスが通っているフォルダに入れます。
これで準備は終わりです。
とりあえずOpenGLとGLUTを利用したコードを書いてみます。
今回は、こんなコードを書きました。
#include <GL/glut.h> void display () { glClear (GL_COLOR_BUFFER_BIT); glBegin (GL_LINE_LOOP); glVertex2d (-0.9, -0.9); glVertex2d (0.9, -0.9); glVertex2d (0, 0.9); glEnd (); glFlush (); } void init () { glClearColor (0.0, 1.0, 0.0, 1.0); } int main (int argc, char *argv[]) { glutInit (&argc, argv); glutInitDisplayMode (GLUT_RGBA); glutCreateWindow (argv[0]); glutDisplayFunc (display); init (); glutMainLoop (); return 0; }
緑色の背景に白い線で三角形を描きます。
C言語は全然わからないので、ほとんどhttp://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html のコードを自分の好きな書き方に直してちょっと変えただけですが。
FreeGLUTを使ってもGLUTと同じソースでいいようです。
「gcc ソースファイル名 -o 出力するexeファイルの名前 -lfreeglut -lglu32 -lopengl32」でコンパイルします。
これで動くはずです。
他の言語からの使用も今度試してみたいです。