2013年08月一覧

エクスプローラサムネイル画像のシェル拡張を作成中です (2)

前回に引き続き、PVR形式のファイルに対応作業をしていました。メジャーどころの対応をひとまず行ってようやくエクスプローラーで確認出来るようになりました。

PVR形式は今現在、2種類ほどのフォーマットバージョンに対応する必要があります。
バージョン2と呼ばれる従来のバージョンでは、52バイトがヘッダで先頭ではなく途中に “PVR!” というタグが出現するフォーマットでした。一方で、バージョン3のヘッダでは52バイトというサイズは同じものの、メタデータが入ることで実質52バイト以上のヘッダとなるデータ構造をしています。そのためそのまま読み込むと画像が崩れたものになってしまいます。

バージョン3のヘッダ情報で大きく変わったものは画像のフォーマットに関するデータの持ち方です。DirectX 10 以降の多種多少なフォーマットに対応できるようなものになっており、PixelFormatだけで 64bitのデータ幅を持っています。

このバージョン3のヘッダ情報を下記に大まかに示します。

このヘッダの末尾、MetaDataSize 分をさらに読み進めると画像データそのものにたどり着くことが出来ます。
また今回のバージョン3からミップマップ数に、ベースレベルの画像をカウントするようになり、最低でも”1”が格納されるようになりました(従来はベースレベルをカウントしなかった)。

これらの詳しい情報は、PVR File Format Specification というPowerVR SDK内のドキュメントに記載があります。自力で実装する人はこちらを参照するとよいでしょう。

余談ですが、PowerVR SDKの中にはpvrをエクスプローラーのサムネイルで表示するシェル拡張DLLが既に含まれていました。そのため今自分が作成しているこのDLLは、pvrを表示したいという目的だけならば完全に不要なものとなってしまいそうです。


今更ですが、Subversion 1.8出てた。ついでにGitLabにも動きが

8月になってしまって、今更感がありますが6月下旬に Subversion 1.8 系が出ていたようです。

とうとう分散リポジトリ対応なのか?!と思って詳細を見てみるとそんなことはないようです。管理用内部ファイル群はまた更新されるようです。ファイルサイズが小さくなったり、ファイル移動の管理がちょっと変わっていたりするようです。

http://subversion.apache.org/ Subversion 1.8.1 が現在は出ているようです。

また、最近のGitLab はどうだろうとおもって確認してみたら、5.4がリリースされているようです。

そして今後 6.0 では Enterprise版とCommunity版と2つに分かれるようです。前者はやはり有料となるようです。単純にサポート有無だけでなく、機能の差異もあるようなので個人的にはちょっと残念に思います。便利なGitHubでオンプレミスで使いたいからGitLabを選択!という状況を考えていたのですが、これはちょっと実現できないかも。

Enterprise版では、LDAP使えるようになるようなので ActiveDirectoryからデータとってきて~とか出来そうな予感です。

GitLabがこんな進化を辿りそうなため、Rhodecodeのほうには簡単でもいいからIssueTrackerが搭載されるのを願いつつ待ってみみようかと思います。