RTM も出たので、Windows 8 での動作を確認しました。

結論から言うと、本来やりたかったことは限定的にしかできません。「本来やりたかったこと」というのは、「映像のアルファ値を解釈し、再生ウィンドウの裏側とアルファブレンディングして表示する」ということです。

以下のスクリーンショットはカメラ(コンデジ)で撮影したものです。PrintScreen 等でスクリーンショットを取ると、画面で見えている状態(=異常な描画)が反映されず、本来 Ut Alpha Video Player が期待する正常な状態の画像が撮れてしまうからです。超モアレってますがご容赦。

互換性タブをいじらない場合

起動するとちゃんと透明になっている…と思いきや、メニューバーの文字が「抜けて」います。まあ、これだけなら実用上は問題ありませんが。

が、ウィンドウを動かしてみると描画が乱れます。これは、昔の Windows(XP 以前)で WM_ERASEBKGND にも WM_PAINT にも応答しないときの見た目に似ています。クライアント領域をどんなブラシで塗りつぶすように処理を変更しても挙動が変わらないので、Windows 8 では「そういうもん」なのだと思われます。

で、動画を再生させるとご覧の有様です。長時間露光してこうなっているのではなく、ホントにこう表示されています。一応アルファ値を考慮した描画にはなっているのですが、前のフレームが残ったところに描画しているようです。ただし、タスクバーにおけるライブサムネイルは本来の意図通りに描画されます。何故に。

背景を「ガラス」にした場合はマトモに表示されます。ただし、ガラスエフェクトにはならず、完全不透明な水色(テーマで指定した色)の上にアルファブレンディングした描画になります。

背景を「黒」にした場合も同様です。黒の場合は本来の意図と完全に一致します。メニューバーの文字も抜けたりはしません。

互換性タブで互換モードを「Windows XP (Service Pack 3)」にした場合

まず、実行するには管理者権限が必要になります。これは Windows 8 に限ったことではなく、Vista/7 で互換モードを XP 以前にした時も同様です。

実行してみると、ウィンドウ枠が Vista/7 でデスクトップコンポジションを無効にした時と同様になります。XP の時の見た目にはなりません。ただし、タイトルバーやメニューバーの文字が「抜ける」のは相変わらずです。

で、背景を「透明」にしていると、ちゃんと透明になります。描画が乱れたりはしません。つまり、Ut Alpha Video Player の本来の挙動になります。

「ガラス」や「黒」の場合も、おおむね期待通りの動作です。ガラスと言いつつガラスになっていないのは互換モードでない時と同じですが。

以上のように、基本的な機能は問題なく動きます。なら別にいいじゃん、と思われるかもしれませんが、Vista 以降では特権レベルを超えたドラッグ&ドロップはできません。つまり、管理者特権で動いている Ut Alpha Video Player に、通常権限で動いているエクスプローラからファイルをドラッグ&ドロップすることはできません。これはたぶん使いづらいです。(管理者特権で動いているエクスプローラを用意してそこからドラッグ&ドロップすれば制限を回避できますが)

なお、描画パフォーマンスが低下しているかどうかは(計測していないので)分かりません。

まとめ

Windows 8 で Aero Glass が無くなるという話は聞いていたので、背景をガラスにしても意味が無いというのは予想していましたが、まさか透明に設定しても意図通りにならないとは思いませんでした。このへん見ると透明度処理がそもそも削除されているみたいなことが書いてありますね。そのくせタスクバーは半透明だったりします。ずるい。

なお、互換モードを「Windows Vista」(Service Pack は任意)や「Windows 7」にした場合は、いじらない場合と挙動は同じでした。Vista や 7 のときにこそ透明になるべきだと思うのですが…

Trackback

only 1 comment untill now

  1. […] 参考: http://umezawa.dyndns.info/wordpress/?p=3335 […]

Add your comment now