次のコードを使用して、ウィンドウの中央にフレームの内容を表示しています。ウインドウモードがあるときは大丈夫ですが、フルスクリーンモードを使用しているときは失敗します。フレームの内容は左上隅にあります。戻り値(hr)はS_OKです。IDirect3DDevice9 :: Presentは、フルスクリーンモードでフレームコンテンツを移動できません。
RECT src = {0, 0, viewport_width, viewport_height};
RECT dst = {0, (window_height - viewport_height)/2, viewport_width, viewport_height + (window_height - viewport_height)/2};
hr = pd3dDevice->Present(&src, &dst, 0, 0);
理由はありますか?すべてのフレームバッファの内容をウィンドウ内の特定の位置にコピーする他の方法は知っていますか?
どこにでも何かを描画するには、通常、テクスチャ付き四角形が必要です。ハードウェアが三角形を描画するのに極端に最適化されているので、これは標準的なものであり、実際には他のメソッド(sw-swap、blitなど)より高速です。 – ssube