■
http://social.msdn.microsoft.com/Forums/ja-JP/vcgeneralja/thread/9dac5d55-36a8-4aae-8d88-606041b19a06/#b5ee23de-121d-462f-b6ce-523ad456e468
http://msdn.microsoft.com/en-us/magazine/ee819134.aspx
http://d.hatena.ne.jp/NyaRuRu/20070127/p2
http://blogs.msdn.com/b/e7/archive/2009/04/25/engineering-windows-7-for-graphics-performance.aspx
http://d.hatena.ne.jp/NyaRuRu/20090208/p1
http://ja.wikipedia.org/wiki/Windows_Display_Driver_Model#WDDM_1.1
Vistaだと透過描画をやるにはGDI使うよりDirectX使った方が良いんじゃないかとか。Vista以降からのDWMではGPU使って描画するようになったとかなのでそりゃまぁそうかも…。Windows7のWDDM1.1だとBitBltの高速化も期待出来るらしい。
Windows2000とかXPとかの古いOSでも問題無く動くソフトウェアにはしたいけど、それ以降のOS用でパフォーマンスを上げる為に別方式の描画用のコードを用意するのもなんだか手間が掛かるなぁ。。OSに限らずCPUでもMMXとかSSEとか使った場合はCPUIDで切り分けもしないと古いCPUで動かなくなるし。。まぁコードは一度用意して使い回せば良いのかもしれないけど、量が多くなると後から見たときに見通しが悪くなるのが嫌だ。
でもGPU使う場合にもそれこそShaderModelとかメーカーの違いとか…、古いPCでも動かそうと考えると対応が大変になるだろうなぁ。。
色々な違いを意識しないでも良いレイヤーがあれば気が楽だけど、そのレイヤーの表現力はラップした仕組みを内包した範囲内に収まってしまう。
特化と汎化は色々悩んでしまうけど、目的というかゴールの設定が大事なんだろうなぁ。。何も工夫しないでも良い結果が得られるのは、それはどこかで下支えされている恵まれている状況なんだろう。まぁそういう状況を選ぶのも必要なのかもしれないけど工夫するのも楽しかったり。