読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

まずはこういう方向性で

C++ DirectX Windowラッパーライブラリ レイヤードウィンドウ Windows

ウィンドウモードでDirect3Dプリミティブのみを画面表示し、その他は透明化する方法はとりあえず下の手順で実現できそうな気がしてきた。

  • GDI互換テクスチャを作る。
  • そこに3Dプリミティブを描画する。
  • テクスチャからサーフェースを取得し、さらにDCを取得する。
  • UpdateLayeredWindowで画面に転送。その際背景色を透過させる。

最後の転送がソフトウェア処理になりそうだけれども、それはしょうがないかもしれない。ホントはスワップチェーンで自動的に作られるサーフェースから直接DCを取得できればいいのだけれど、スワップチェーンを作るときにGDI互換を示すフラグがセットできなさそうである。ここはもう少し調べてみないといけなさそうだけれども。。