ゆとりーなの日記

日記的な事を書いて行くと思はれる

自作ライブラリはDXライブラリに勝てるか

もともとDXライブラリに対して満足していなかった事が自作ライブラリ作成の動機だったりするのです。いやまぁでも勝てる要素は今のところありません。DXライブラリは何だかんだで色々な所で使われているだけあって、バグも少なく或る程度高速且つ便利なんです。そんなライブラリに果たして勝てるのでしょうか。多分無理です。
そして彼の特徴は

  • Windowsプログラムだと意識しなくて済む
  • ライブラリの色が薄い
  • ライブラリのソースコードを公開

ですね。これは本家ホームページからの引用です。
Windowsプログラムだと意識しなくて済むってとこは多分当方のライブラリもそうなってると思います。ソースコードも一応こちらもgithubにて公開しているのでここも対抗できています。
そして問題なのが二個目。確かにDXライブラリは色が薄いです。Cっぽい関数ベースのAPI群なので独自の規則や法則が少ないです。対して当方のライブラリは関数とかクラスが入り混じってますし、テンプレートまみれです。パイプオペレータとかいう初見殺しも含まれています(最近関数版も用意しました)。赤色の四角形(0,0)~(320,240)を描画するのがこんなコードですから。

draw(box(0.f, 0.f, 320.f, 240.f) | colored(kRed));

巷では四角形描画関数があるものが多いですからね。C++でやりたかっただけーを好き放題いれ込んだ結果がこれですよ。
規則もそれなりにある方かもしれません。といっても個人的に規則はライブラリを拡張したい時に使うものなんでライブラリが用意した物を使う限りにおいてはそれほどでもないのかもしれません。
と言っても名前からして既に怪しい規則が入っていたりしますが。

な感じで結構面倒ですね。昔はngy313名前空間に纏めて突っ込んでいたんですが何となくもうひと階層作ってみました。フルスクリーン化の指定とかはgraphic名前空間に入っていたり少し直観的ではない部分もあるかもしれないです。まぁフルスクリーンの指定はwin32APIじゃなくてDirect3Dの管轄だから仕方ないですね。とか言ってる時点できちんと実装を隠蔽出来てないのかもしれませんが。
やっぱり一番自信ないのはエラーチェックなりオプションの充実さとかですね。DXライブラリで設定できるのに当方では設定できない項目とかも結構ありますし、初期化とかエラーチェックもきちんと出来ているかとかあまり自信ないです。あとは色んなマシンで動くのかとかも分かりません。取り敢えず家のマシンで動くのが確認できるだけです。そういった意味でも既存のライブラリに勝負を挑むということが既に無謀なのかもしれません。