Win32 API 日本語リファレンス
ホームGraphics.Direct3D9 › D3DSWAPEFFECT

D3DSWAPEFFECT

列挙型
基底型i4

メンバー 5

名前10進16進
D3DSWAPEFFECT_DISCARD10x1
D3DSWAPEFFECT_FLIP20x2
D3DSWAPEFFECT_COPY30x3
D3DSWAPEFFECT_OVERLAY40x4
D3DSWAPEFFECT_FLIPEX50x5

公式ドキュメント

スワップ効果を定義します。

解説(Remarks)

Present の呼び出し後のバックバッファーの状態は、これらの各スワップ効果によって明確に定義されており、Direct3D デバイスがフルスクリーンのスワップチェーンで作成されたかウィンドウモードのスワップチェーンで作成されたかは、この状態に影響しません。特に、D3DSWAPEFFECT_FLIP スワップ効果はウィンドウモードでもフルスクリーンでも同じように動作し、Direct3D ランタイムは追加のバッファーを作成することでこれを保証します。そのため、このようなペナルティを避けるために、アプリケーションでは可能な限り D3DSWAPEFFECT_DISCARD を使用することをお勧めします。このスワップ効果は、メモリ消費とパフォーマンスの面で常に最も効率的だからです。

D3DSWAPEFFECT_FLIP または D3DSWAPEFFECT_DISCARD を使用するアプリケーションは、フルスクリーンでのデスティネーション アルファが機能することを期待すべきではありません。つまり、D3DRS_DESTBLEND レンダー ステートは期待どおりに動作しません。これは、これらのスワップ効果を使用するフルスクリーンのスワップチェーンが、ドライバーから見て明示的なピクセル形式を持たないためです。ドライバーは、これらがディスプレイ形式を取るものと推定しますが、ディスプレイ形式にはアルファ チャネルがありません。これを回避するには、次の手順を実行します。

非表示のウィンドウはユーザーモードのイベントを受け取ることができません。さらに、非表示のフルスクリーン ウィンドウは、他のアプリケーションのウィンドウモードのウィンドウの表示を妨げます。したがって、各アプリケーションは、スワップチェーンがフルスクリーン モードで表示されるときに、デバイス ウィンドウが可視であることを保証する必要があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 Enum
import 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* = 5
enum 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