ページ

2010年5月15日土曜日

SimpleCap - ウィンドウキャプチャで下のウィンドウも対象にする(5) 制約

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

(前回)Cocoaの日々: SimpleCap - ウィンドウキャプチャで下のウィンドウも対象にする(4) 複数CGImage の合成

前回までの実装では、複数のウィンドウをキャプチャする場合に、間に入ったウィンドウはキャプチャされない。例えばこんなケース。


1、2のウィンドウをキャプチャする場合、その間にある(右の)ウィンドウはキャプチャされず、次のようになる。
上図のように、右のウィンドウは映らない。

これは仕様とする。

前回までのアーキテクチャでも簡易的に撮れないことはないのだが、合成時に下のウィンドウの影が濃くなる副作用がある。以下は影が濃い例。

わかりずらいので拡大してみる。
通常の影。

濃くなっている影のケース。


これは合成時に下のウィンドウを結果的に2回描画することになり、影の部分は2度塗の効果が出てしまうため。

これを改善するにはアプローチを変えなければならないが、このケースで困ることはかなりレアなので今回は簡易的な方法(つまり間に入ったウィンドウはキャプチャされない)を取って、それを仕様とすることにした。

#忘れずにマニュアルに書いておく。