UbuntuでもD言語からSDLを使ってみる

ゲームなどを作るときによく使われる画面描画ライブラリの一つに「SDL」というのがあります。
D言語からSDLを使う場合は、Windowsの場合の方法は結構見つかりますが、Linuxだとあまり見つかりません。
なので適当に書いてみました。

SDLのインストール

Ubuntuなら簡単です。

sudo apt-get install libsdl-dev

これで、SDLC言語用ライブラリ自体は簡単にインストールできます。

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

http://shinh.skr.jp/d/porting.html」の「SDL」をクリックしてダウンロードし、ダウンロードした圧縮ファイルを解凍して出てきた「SDLディレクトリを、
適当に作っておいた作業用ディレクトリの中に入れました。
しかし、D言語用ライブラリが作られた時とD言語のバージョンが違うため、このままでは動きません。このまま使ってしまうと、

SDL/SDL_version_.d(66): Error: identifier 'bit' is not defined
SDL/SDL_version_.d(66): Error: bit is used as a type
SDL/SDL_cdrom.d(52): Error: identifier 'bit' is not defined
SDL/SDL_cdrom.d(52): Error: bit is used as a type
SDL/SDL_video.d(135): Error: identifier 'bit' is not defined
SDL/SDL_video.d(135): Error: bit is used as a type
SDL/SDL_video.d(189): Error: identifier 'bit' is not defined
SDL/SDL_video.d(189): Error: bit is used as a type
SDL/SDL_quit.d(43): Error: identifier 'bit' is not defined
SDL/SDL_quit.d(43): Error: bit is used as a type

こんなエラーが出てしまいます。
それを回避するためには、プログラムを書き換える必要があります。
エラーメッセージを読んで、エラーに出てきたソースコードで、「bit」という型を使っているところを、全て「bool」型を使うように書き換えておきます。
そうすれば動作するようになります。

使ってみる

さっき「SDLディレクトリを入れた作業用ディレクトリの中に、
http://www5.atwiki.jp/yaruhara/pages/74.html#id_f29e7466 このページの「SDLを動かす(画面を出す)」というところにあるプログラムを、「sdltest.d」という名前で保存しました。
そして、「dmd sdltest.d -ISDL -L-lSDL」でコンパイルします。
コンパイルすると「sdltest」という実行ファイルができるので、それを実行すればウィンドウが表示されます。


コードを書き換える以外は一般的なやり方だと思います。
他のライブラリにも応用できそうな気もするので、別のライブラリでも試してみたいです。