次の方法で共有


D3DPRESENTFLAG

D3DPRESENT_PARAMETERS によって使用される定数です。

#define 説明
D3DPRESENTFLAG_DEVICECLIP 0x00000004 ウィンドウ表示の IDirect3DDevice9::Present のブリットを切り取り、Direct3D デバイスを作成したビデオ アダプターのモニター画面領域内のウィンドウ クライアント領域に格納します。D3DPRESENTFLAG_DEVICECLIP を D3DSWAPEFFECT_FLIPEX と同時には指定できません。
D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL 0x00000002 デバイスまたはスワップ チェーンを作成して z バッファーの破棄を有効化する場合は、このフラグを設定します。このフラグを設定した場合、深度ステンシル バッファーのコンテンツは別の深度サーフェスを指定した IDirect3DDevice9::Present または IDirect3DDevice9::SetDepthStencilSurface を呼び出した後に無効になります。

z バッファー データの破棄は、パフォーマンスを向上させることができ、ドライバーに依存しています。デバッグ ランタイムでは、IDirect3DDevice9::Present または別の深度サーフェスを指定した IDirect3DDevice9::SetDepthStencilSurface を呼び出した後、何らかの定数値でクリアすることにより、z バッファーを強制的に破棄します。

z バッファー データの破棄は、すべてのロック可能なフォーマット (D3DFMT_D16_LOCKABLE および D3DFMT_D32F_LOCKABLE) では実行できません。ロック可能なフォーマットと z バッファーの破棄を指定して IDirect3D9::CreateDevice を使用すると、失敗します。フォーマットの詳細については、「D3DFORMAT」を参照してください。

D3DPRESENTFLAG_LOCKABLE_BACKBUFFER 0x00000001 アプリケーションでバック バッファーを直接ロックする必要がある場合は、このフラグを設定します。アプリケーションで IDirect3D9::CreateDevice または IDirect3DDevice9::Reset を呼び出す際、D3DPRESENTFLAG_LOCKABLE_BACKBUFFER を指定していないと、バック バッファーをロックすることができないので、注意してください。ロック可能なバック バッファーによって、一部のグラフィックス ハードウェア構成ではパフォーマンス コストが増えます。

ロック可能なバック バッファー上でロック処理 (または IDirect3DDevice9::UpdateSurface による書き込み処理) を実行すると、多くのカードではパフォーマンスが低下します。そのような場合は、テクスチャー化された三角形を使用してデータをバック バッファーに移動することを検討する必要があります。

Direct3D 9 と Direct3D 9Ex の違い Direct3D9Ex では、D3DSWAPEFFECT が D3DSWAPEFFECT_FLIPEX の場合、このフラグを設定できません。これは、フリップ モデルではデスクトップ ウィンドウ マネージャーからアプリケーションのバック バッファーにアクセスできるからです。プロセス間の共有リソースをロックすることはできません。
D3DPRESENTFLAG_NOAUTOROTATE 0x00000020 あまり効率的とは言えませんが、プレゼンテーション時にコピーを回転すると、モニターの回転が自動的に処理されます。このフラグは、アプリケーションが独自の表示回転を実行することを意味しています。
Direct3D 9 と Direct3D 9Ex の違い このフラグは Direct3D 9Ex でのみ使用できます。

アプリケーションは、ビュー行列の回転により、独自の回転を実行できるものと思われます。現在の回転の設定を取得するには、IDirect3DSwapChain9Ex::GetDisplayModeEx メソッドおよび IDirect3D9Ex::GetAdapterDisplayModeEx メソッドを使用します。IDirect3D9Ex::CreateDeviceEx および IDirect3DDevice9Ex::ResetEx におけるバック バッファーの幅と高さのパラメーターでは、横方向を使用する必要があります。一方、全画面表示モードの構造体は、IDirect3D9Ex::EnumAdapterModesEx から返されるものと同じでなければなりません (つまり、幅および高さは、90°および 270°回転される場合、スワップされます)。

回転されたレンダー ターゲット上で Lock を使用する場合、左上隅の仮定は成立しません。Direct3D レンダー ターゲットおよびシーンと共に使用する場合、レンダー ターゲット SURFACE_DESC は (作成時のパラメーターで暗黙的に示されるように) 横のままですが、GDI ウィンドウやマウス座標などは正しく変換する必要があります。

D3DPRESENTFLAG_UNPRUNEDMODE 0x00000040 ディスプレイ アダプターによってエミュレートされる RAW 表示モードを指定する場合 (該当するモードが Direct3D によって無効であると示されている場合も含む) は、このフラグを使用します。アプリケーションでは、目的のモードが実際には無効である場合に備えてこのフラグ実装しておけば、堅牢性が向上します。
Direct3D 9 と Direct3D 9Ex の違い このフラグは Direct3D 9Ex でのみ使用できます。
D3DPRESENTFLAG_VIDEO 0x00000010 これは、バック バッファーにビデオ データが含まれることをドライバーに知らせるためのヒントです。
D3DPRESENTFLAG_OVERLAY_LIMITEDRGB 0x00000080 TBD
D3DPRESENTFLAG_OVERLAY_YCbCr_BT709 0x00000100 TBD
D3DPRESENTFLAG_OVERLAY_YCbCr_xvYCC 0x00000200 TBD
D3DPRESENTFLAG_RESTRICTED_CONTENT 0x00000400 TBD
D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER 0x00000800 TBD

これらの定数は、D3DPRESENT_PARAMETERS で使われます。

定数情報

ヘッダー d3d9types.h
最低限必要なオペレーティング システム Windows 98