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をどこかパスが通っているフォルダに入れます。
これで準備は終わりです。
とりあえずOpenGLGLUTを利用したコードを書いてみます。
今回は、こんなコードを書きました。

#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」でコンパイルします。
これで動くはずです。

他の言語からの使用も今度試してみたいです。