ホーム   最近   SikiWiki   編集   新規 

[SikiLanguage] [式鬼言語航海日誌] 2007-09-27

2007/09/27_000001




まだまだ寄り道が続きます。今日もSDLです。

「ン? まだ何かやっているンかい?」

ええ、SDLは良くできたライブラリですが、残念ながら基本はCで実装されています。使い方もCチックです。

「まあ、目的を考えればそうだわな。カリカリにチューンするだろうし、そもそもこの手のライブラリ使うやつがオーバーヘッドの発生しやすいC を使うことは少ないだろうからねぇ」

……いや、いや。最近そこまでストイックなプログラマは少ないと思いますが……。そもそもPCの性能が上っていますし。

まあ、それは置いといて、SDLはCで実装されているということから、

  • リソース管理は自分で行う必要がある
  • にもかかわらずライブラリが管理しているリソースも存在して、それぞれ扱いを別にしなくてはならない
  • 「~~している間は~~してはいけない」といった制限があり、プログラマが気を付けなくてはいけない
  • namespaceを使っていないので命名規則がウザったい

という欠点があります。

「……最後のは言い掛かりだねぇ。まあ、RAII信奉者のあンたとしては納得行かないことなンだろうねぇ」

ええ。細かく注意しなくちゃいけないのは面倒です。Cならともかく、C 使っていてこんな細々したことに付き合うのは苦痛以外のなにものでもありません。

ということで、C でラッパーを作ってみることにしました。

「ふうン。で、どういうコンセプト──考え方で行くんかい?」

はい。まずは

  • RAII!! RAII!!!! RAII!!!!!! リソースは全部RAIIで管理。SDLの初期化と解放もRAIIにする。
  • 基本的にSDLを表すオブジェクトを操作することでSDLの操作を行う。
  • サウンドとかグラフとかの一部の機能だけ使う用途にも対応できるように、コンセプトベースで組む。

といった感じですね。じゃ、ちょっとチャレンジしてきます。





制作・著作: 野分(nowake) at fiercewinds.net (Creative Commons 表示-継承 2.1 日本)