D3DSWAPEFFECT
列挙型メンバー 5
| 名前 | 10進 | 16進 |
|---|---|---|
| D3DSWAPEFFECT_DISCARD | 1 | 0x1 |
| D3DSWAPEFFECT_FLIP | 2 | 0x2 |
| D3DSWAPEFFECT_COPY | 3 | 0x3 |
| D3DSWAPEFFECT_OVERLAY | 4 | 0x4 |
| D3DSWAPEFFECT_FLIPEX | 5 | 0x5 |
公式ドキュメント
スワップ効果を定義します。
解説(Remarks)
Present の呼び出し後のバックバッファーの状態は、これらの各スワップ効果によって明確に定義されており、Direct3D デバイスがフルスクリーンのスワップチェーンで作成されたかウィンドウモードのスワップチェーンで作成されたかは、この状態に影響しません。特に、D3DSWAPEFFECT_FLIP スワップ効果はウィンドウモードでもフルスクリーンでも同じように動作し、Direct3D ランタイムは追加のバッファーを作成することでこれを保証します。そのため、このようなペナルティを避けるために、アプリケーションでは可能な限り D3DSWAPEFFECT_DISCARD を使用することをお勧めします。このスワップ効果は、メモリ消費とパフォーマンスの面で常に最も効率的だからです。
D3DSWAPEFFECT_FLIP または D3DSWAPEFFECT_DISCARD を使用するアプリケーションは、フルスクリーンでのデスティネーション アルファが機能することを期待すべきではありません。つまり、D3DRS_DESTBLEND レンダー ステートは期待どおりに動作しません。これは、これらのスワップ効果を使用するフルスクリーンのスワップチェーンが、ドライバーから見て明示的なピクセル形式を持たないためです。ドライバーは、これらがディスプレイ形式を取るものと推定しますが、ディスプレイ形式にはアルファ チャネルがありません。これを回避するには、次の手順を実行します。
- D3DSWAPEFFECT_COPY を使用します。
- D3DCAPS9 構造体の Caps3 メンバーにある D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD フラグを確認します。このフラグは、D3DSWAPEFFECT_FLIP または D3DSWAPEFFECT_DISCARD の使用時にドライバーがアルファ ブレンディングを実行できるかどうかを示します。
- フリップ モードのスワップ効果 (D3DSWAPEFFECT_FLIPEX) を使用するアプリケーションは、ウィンドウのサイズ変更または領域の変更後に PresentEx を呼び出して、表示内容が確実に更新されるようにする必要があります。
非表示のウィンドウはユーザーモードのイベントを受け取ることができません。さらに、非表示のフルスクリーン ウィンドウは、他のアプリケーションのウィンドウモードのウィンドウの表示を妨げます。したがって、各アプリケーションは、スワップチェーンがフルスクリーン モードで表示されるときに、デバイス ウィンドウが可視であることを保証する必要があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum D3DSWAPEFFECT : int {
D3DSWAPEFFECT_DISCARD = 1,
D3DSWAPEFFECT_FLIP = 2,
D3DSWAPEFFECT_COPY = 3,
D3DSWAPEFFECT_OVERLAY = 4,
D3DSWAPEFFECT_FLIPEX = 5
} D3DSWAPEFFECT;public enum D3DSWAPEFFECT : int
{
D3DSWAPEFFECT_DISCARD = 1,
D3DSWAPEFFECT_FLIP = 2,
D3DSWAPEFFECT_COPY = 3,
D3DSWAPEFFECT_OVERLAY = 4,
D3DSWAPEFFECT_FLIPEX = 5,
}Public Enum D3DSWAPEFFECT As Integer
D3DSWAPEFFECT_DISCARD = 1
D3DSWAPEFFECT_FLIP = 2
D3DSWAPEFFECT_COPY = 3
D3DSWAPEFFECT_OVERLAY = 4
D3DSWAPEFFECT_FLIPEX = 5
End Enumimport enum
class D3DSWAPEFFECT(enum.IntEnum):
D3DSWAPEFFECT_DISCARD = 1
D3DSWAPEFFECT_FLIP = 2
D3DSWAPEFFECT_COPY = 3
D3DSWAPEFFECT_OVERLAY = 4
D3DSWAPEFFECT_FLIPEX = 5// D3DSWAPEFFECT
pub const D3DSWAPEFFECT_DISCARD: i32 = 1;
pub const D3DSWAPEFFECT_FLIP: i32 = 2;
pub const D3DSWAPEFFECT_COPY: i32 = 3;
pub const D3DSWAPEFFECT_OVERLAY: i32 = 4;
pub const D3DSWAPEFFECT_FLIPEX: i32 = 5;// D3DSWAPEFFECT
const (
D3DSWAPEFFECT_DISCARD int32 = 1
D3DSWAPEFFECT_FLIP int32 = 2
D3DSWAPEFFECT_COPY int32 = 3
D3DSWAPEFFECT_OVERLAY int32 = 4
D3DSWAPEFFECT_FLIPEX int32 = 5
)const
D3DSWAPEFFECT_DISCARD = 1;
D3DSWAPEFFECT_FLIP = 2;
D3DSWAPEFFECT_COPY = 3;
D3DSWAPEFFECT_OVERLAY = 4;
D3DSWAPEFFECT_FLIPEX = 5;// D3DSWAPEFFECT
pub const D3DSWAPEFFECT_DISCARD: i32 = 1;
pub const D3DSWAPEFFECT_FLIP: i32 = 2;
pub const D3DSWAPEFFECT_COPY: i32 = 3;
pub const D3DSWAPEFFECT_OVERLAY: i32 = 4;
pub const D3DSWAPEFFECT_FLIPEX: i32 = 5;const
D3DSWAPEFFECT_DISCARD* = 1
D3DSWAPEFFECT_FLIP* = 2
D3DSWAPEFFECT_COPY* = 3
D3DSWAPEFFECT_OVERLAY* = 4
D3DSWAPEFFECT_FLIPEX* = 5enum D3DSWAPEFFECT : int {
D3DSWAPEFFECT_DISCARD = 1,
D3DSWAPEFFECT_FLIP = 2,
D3DSWAPEFFECT_COPY = 3,
D3DSWAPEFFECT_OVERLAY = 4,
D3DSWAPEFFECT_FLIPEX = 5,
}#define global D3DSWAPEFFECT_DISCARD 0x1
#define global D3DSWAPEFFECT_FLIP 0x2
#define global D3DSWAPEFFECT_COPY 0x3
#define global D3DSWAPEFFECT_OVERLAY 0x4
#define global D3DSWAPEFFECT_FLIPEX 0x5