Direct2D によるレイヤード ウィンドウを読んでいた。
記事の内容はDCをインターフェースとしてやり取りし、Direct2Dで描画時にハードウェアアクセラレーションを効かせながら最小コストでレイヤードウィンドウに画面転送する方法を解説しているものであった。正確にはDirect2D -> Direct3D/DXGI -> レイヤードウィンドウという描画の流れだが。
気づいたのはレイヤードウィンドウは2通りの利用方法があるということだ。
1つめは今まで試してきたウィンドウ全体に半透明処理やカラーキーによる透明化処理の方法(SetLayeredWindowAttributes )である。もう1つはUpdateLayeredWindowによる方法である。UpdateLayeredWindowはバックバッファの内容を画面転送するとともに半透明処理と透明化処理を行うAPIなのであった。