Hatena::ブログ(Diary)

自称スーパーハッカーの適当なプログラミング雑記等

2009-12-27

MinGWでOpenGLやGLUTを使ってみる

| 04:41

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」でコンパイルします。

これで動くはずです。

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

トラックバック - http://d.hatena.ne.jp/tana-laevatein/20091227/1261942906
Connection: close