SDL.netを試してみた

C#OpenGLを使いたい。
どうせならクロスプラットフォームにしたいということで
とりあえずsdldotnet-6.1.0.tar.gzを入手。
解凍してexamplesにあるSdlDotNetExamples.exeを試してみた。

$ mono SdlDotNetExamples.exe
Unhandled Exception: System.DllNotFoundException: libSDL_gfx.so.4
  at (wrapper managed-to-native) Tao.Sdl.SdlGfx:aalineRGBA (intptr,int16,int16,int16,int16,byte,byte,byte,byte)

エラー続く

調べてみた結果、うちのgentooにはsdl-gfxが入ってなかったので
SDL関連のライブラリで要りそうなのを適当にインストールした。
さらに調べてみるとインストールされたのは

/usr/lib/libSDL_gfx.so.0

微妙にファイル名が違う。
SdlDotNet側でlibSDL_gfx.so.4を決め打ちしているところを探したところ、

$ grep so.4 *
Tao.Sdl.dll.config:             <dllentry os="linux" dll="libSDL_gfx.so.4" />

というのを発見。
Tao.Sdl.dll.configのso.4をso.0に書き換えてみたところ
うまく動いたのであった。
ここでso.4とかso.0とか決め打ちせずにシンボリックリンクを指しておけばいいじゃないと気づいたのでlibSDL_glf.soで実践してみたところ問題無し。


dll.configファイルがどういうものか調べてみたところ
monoのdllmapというものらしい。
メモ。
http://www.mono-project.com/Config_DllMap