03.クリッパー

やっぱり必要でしたorz

第1回で面倒だからとクリッパーの設定をサボっていましたがやっぱり必要でした。
DirectDrawの名の如く画面に直接描画するもんだからもう絵がウィンドウからはみ出ていても他のウィンドウが上にやってきても自分のウィンドウが動いても全くお構いなし。
フルスクリーンモードだったら別に問題ないけどウィンドウモードだと気になります。

意外と簡単に使えます(^▽^)

使うためには以下のコードでクリッパーを生成し、ウィンドウを指定し、プライマリサーフェスに適用します。
こんな簡単なのを面倒がってサボってたなんて恥ずかしいっ!

Set ddcClipper = dd7.CreateClipper(0)
ddcClipper.SetHWnd hWnd
ddsPrimary.SetClipper ddcClipper

もちろんddcClipperは適当なところで定義しておきます。
本来ならばこの後でウィンドウ位置にあわせた描画位置の補正もしてやらなければならないのですが、WindowState=0かつLeft=Top=0ならば以前のままで別段問題なく表示されます。

サンプル(2.55kilobyte)