とりあえず独自で
JUCEライブラリを覗いてみたらUI描画はDirect2Dでも行えるようになっているようだ。そうするとUIはJUCEを使えばいいのではないかとも思うが、やっぱりぼちぼち自作することにした。
JUCEというのはクロス・プラットフォームなライブラリでUIだけでなくオーディオ・グラフィック・データ構造など多岐にわたり、非常に高機能である。特にオーディオサポートが充実していて、tracktionなどのアプリもこれで作られているらしい。IntroJucerというアプリもついていてこれを使えばUIレイアウトも編集できる。
ただ今回の私の用途からすると必要なのはUIの部分だけで、その他はいらなかったりする。私は枯れ行くWindowsのしかもX64のみで動作するデスクトップアプリを作りたいだけである。クロス・プラットフォームなライブラリは抽象度が高すぎてそのような特定OSに偏重したアプリはそもそも合わないし、ライブラリとの接合点に新たなラッパーをかましたりする必要が出てくる。そういうことをするのならUIレイアウトエディタを自作するほうがよいかなと思った。というか今回作りたいアプリってUIレイアウトをエディタで編集するほどの規模でもないし。 さらにいうとJUCEはコンテナ・ライブラリが独自仕様で、それをベースに各ライブラリが作られている。私はSTLコンテナを使っているのでそこでまた変換をかまさないといけなくなってくる。コンテナはもう独自なものは使用したくないのだ。
つまり、JUCEというライブラリは非常に優れたライブラリである。ただ私が偏屈でライブラリ仕様に合わそうとしていないだけである。
VCのコンパイラのCTP版が出ていた。
2013/11にVS2013のC++コンパイラのCTP版が出ていた。
制限つきながらもようやくconstexprに対応したようである。ClnagもGCCもとっくの昔に対応しているものであるが。
ただC++11の対応度からするとまだまだ十分とは言えない。はやくすべての機能に対応してほしいものだ。Clang/GCCと比較して拙速なのは否めない。ただMSって昔はもっと規格への対応が遅かったように思う。少しはましになっていると思うが。
DirectXTK/DirectXTexライブラリもアップデート
とりあえずこれもアップデートしておいた。DirectXTKはオーディオ・サポートの追加くらいのようだ。DirectXTexはよくわからない。あとでドキュメントをみることにしよう。