UbuntuでD言語からOpenGLとGLUTも使ってみた。

SDLの時の方法はSDL以外にも使えそうだったのでやってみました。

GLUTをインストール

Ubuntuならaptで簡単です。

sudo apt-get install freeglut3-dev

D言語用ライブラリの準備

http://shinh.skr.jp/d/porting.html」の「OpenGL」をクリックしてzipファイルをダウンロードします。
そして、ダウンロードしたファイルを解凍すると「opengl」というディレクトリが出てくるので、
同じページの「glut」をクリックして「glut.d」をダウンロードし、それをopenglディレクトリの中に入れて、
そのopenglディレクトリを、適当に作っておいた作業用ディレクトリの中にコピーしておきます。

使ってみる

今回は、http://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html のコードを元に、
http://romanchu.blog105.fc2.com/blog-entry-191.html に書かれている方法を参考にしてD言語用にしたソースをコンパイルしてみます。

import opengl;
import openglu;
import glut;
import std.string;

char** args2argv(string[] args) {
  char **argv = cast(char**)new char*[args.length];
  for (int i = 0; i < args.length; i++) {
    argv[i] = cast(char*)toStringz(args[i]);
  }
  return argv;
}

void display()
{
  glClear(GL_COLOR_BUFFER_BIT);
  glFlush();
}

void init()
{
  glClearColor(0.0, 0.0, 1.0, 1.0);
}

int main(string[] args)
{
  int argc = args.length;
  char** argv = args2argv(args);
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_RGBA);
  glutCreateWindow(argv[0]);
  glutDisplayFunc(&display);
  init();
  glutMainLoop();
  return 0;
}

これを作業用ディレクトリに「gltest.d」で保存し、
これを「dmd gltest.d -Iopengl -L-lglut -L-lGLU -L-lGL」でコンパイルすると「gltest」という実行ファイルができます。
実行すると、青く塗りつぶされたウィンドウが出てきます。