画廊亭32の作業は、とりあえずスクリーンセーバー本体と、BMP画像ドライバー、パン・ビュードライバーが最低限手動で記述した設定ファイルで動作する段階に達しています。
しかし、この段階で一時中断して、C++のネイティブコードとmanagedコードの混在利用について調査を始めています。オータムマガジンをきっちり見ている人なら、それに関するコンテンツがしばしば書き込まれていたことが分かるでしょう。
では、なぜ画廊亭32を中断してそれを調べていたのか?
画廊亭32に飽きたのか?
そうではありません。
このまま、10年前の画像ドライバを復活させ、当時サポート対象としていた画像データのサポートを復活させることが、あまりリーズナブルではないと気付いたためです。
具体的にリーズナブルではない理由はいくつかあります。
まず、画像フォーマットそのものが進化しているケースがあること。10年前のコードは、それ以後の変更に対応していません。
そして、当時と異なり、今時のOSは各種画像フォーマットのサポートを含んでいること。たとえば、GDI+や.NET Frameworkなどは(厳密にはOSに標準のモジュールではないにせよ)、多数の画像フォーマットを扱う機能を含んでいます。しかも、それらは非常に簡単に使えます。
であれば、10年前の画像ドライバを復活させるよりも、OSの機能を呼び出す画像ドライバを新規に作成する方が楽だと考えるのも間違ったことではないと思います。
手間もさほど掛からず、対応画像フォーマットは増えるのですから。
対応画像フォーマット(見込み)の比較 §
10年前に標準で対応していた画像フォーマットは以下の通りです。
MAKI/MAGは事実上、既に大きなニーズのない形式でしょう。
AVIについては、必要があれば別途Windows Mediaに対応した新しいドライバを作る方が良さそうなので除外して考えます。とはいえ、本当にそれが必要か、それを作ることが好ましいかは要検討です。昔と異なり、今では長時間の動画ファイルも当たり前なので、たとえば30分の動画ファイルの再生を始めたら、30分間次の画像が出てこないことになり、画像スクリーンセーバーの趣旨に合いません。
さて、.NET Frameworkを使った場合、利用できる画像形式は以下のようになります。
- BMP
- EMF
- EXIF
- GIF
- ICON
- JPEG
- PNG
- TIFF
- WMF
PNGが使えることは現状では大きな強みと言えます。
EXIFに対応していることは、デジカメの撮影情報などを取り出して、別途表示する機能などへの発展の可能性を秘めます。
画廊亭独自の画像ドライバーそのものの廃止という検討課題 §
実は、上記の画像形式と、Susieのプラグインに対応すれば、大抵のニーズはそれで満たされるのではないか、という気がしてきました。つまり、画廊亭独自の画像ドライバーというモジュールはもう必要ないのではないかと。
それは1つの検討課題として認識したいと思います。
開発再開! §
とりあえず、技術的に知りたいことはだいたい分かってきたので、ネイティブC++とManaged C++の混在という形で開発を再開しようかと考えています。
C++/CLIつまりVisual C++ 2005を待つつもりはないので、ある程度作業がまとまった段階で公開できると思います。