FrontPage開発日誌


二ヶ月ぶりか・・・ - 2009/4/9 (木) by myun2

思ってたよりもそんなに経ってなかったな。(何

ミューです。


2ヶ月程書いてない間に、二段階程色々とありました。

まず、一段階目として、前回の日誌の最後で「あとはパーティクルとか、影とかそこらへんかなぁ」みたいな事言っていましたが、
全然それだけじゃ済まなかった件。

よりちゃんとした鏡面効果とかを得るためには、ピクセルシェーダーの力をお借りせねばならなかったりで、
最初はピクセルシェーダー1.0のアセンブラごりごり、そん次HLSL・・・を使おうと思ったら これがDirectX 9以降でないと使えないとかで、DirectX 9に頑張って対応させたり(DirectX 8と9じゃだいぶ色々と違くて大変だったのですよぉー・・・)、 で、対応させたは良いけどHLSL全然ワカラン・・・とかそんな感じでした。(何


結局、そっちの方はとりあえず放置してて、(何
今、第二段階として、August Frameworkの再設計をやっています。

再設計を始めた一つ目の理由は、まず、DirectX 9がSDKのバージョン(2004とか、2006 Febとか2006 Aprilとか)によってコロコロと仕様が変わる事。
しかも、IDirect3DDevice8 と IDirect3DDevice9、みたいに、クラス名を変えてくれればまだ良いものの、
同じクラス名でありながらもガラっと仕様(中身の実装だけではなく、メソッドインターフェースまで・・・)を変えやがる事。
お陰で「DirectX 9のSDK」って言う点では同じである筈なのに、2004とか2006とか2008とかでコンパイル出来たり、出来なかったり・・・
となってしまうのですよねぇ・・・。

なのでこれに対する対策として、いっそDirectXに依存する部分を秘匿してしまおう、と言った発端で再設計を始めています。
具体的にはつまり、DirectXのヘッダを使用者が読まなくても良い様に秘匿してしまおう、と言う事。
使用者はDirectX SDKをインストールしなくて良くなるので、一石二鳥、と言うのもあります。

またこれには二つ目の理由もあって、将来的にはMinGWでもコンパイル可能なようにしよう、と言う目論見もあったりします。
MinGWにも一応DirectXは含まれている・・・ようなのですが、ID3DX系クラスが含まれてなさそうなのと、
DirectX 9のみの対応みたいなので、いざDirectX 8に戻そうとしたときに戻せない・・・と言う理由があっての事です。


で、そういった理由で始めていたのですが、暫くしてもう一つ理由が浮上、それは「DirectX 8 SDKがついに入手不可能になったっぽい」というものでした。

一応今、DirectX 9で進めてはいるのですが、いつDirectX 8に戻すか分かりませんし、つーか入手可能なDirectX 9 SDK、一番古い奴でもVC++ 6.0でコンパイル出来ないっぽいし、
と言う事もあって、今急いで再設計を行っている所です。