DXGI_PRESENT
列挙型フラグメンバー 9
| 名前 | 10進 | 16進 |
|---|---|---|
| DXGI_PRESENT_TEST | 1 | 0x1 |
| DXGI_PRESENT_DO_NOT_SEQUENCE | 2 | 0x2 |
| DXGI_PRESENT_RESTART | 4 | 0x4 |
| DXGI_PRESENT_DO_NOT_WAIT | 8 | 0x8 |
| DXGI_PRESENT_STEREO_PREFER_RIGHT | 16 | 0x10 |
| DXGI_PRESENT_STEREO_TEMPORARY_MONO | 32 | 0x20 |
| DXGI_PRESENT_RESTRICT_TO_OUTPUT | 64 | 0x40 |
| DXGI_PRESENT_USE_DURATION | 256 | 0x100 |
| DXGI_PRESENT_ALLOW_TEARING | 512 | 0x200 |
公式ドキュメント
DXGI_PRESENT 定数は、フレームを出力に提示する際のオプションを指定します。
| 定数/値 | 説明 |
|---|---|
|
各バッファー(現在のバッファーから開始)のフレームを出力に提示します。 |
| DXGI_PRESENT_DO_NOT_SEQUENCE 0x00000002UL |
現在のバッファーのフレームを出力に提示します。このフラグを使用すると、通常の方法でチェーン内のバッファーを順に切り替える代わりに、垂直帰線消去との同期を使用して提示できます。 注: 呼び出し元のアプリケーションが最初の提示操作(つまり現在のバッファーが存在しないとき)で DXGI_PRESENT_DO_NOT_SEQUENCE 定数を設定した場合、ランタイムはその提示操作を無視し、ドライバーを呼び出しません。 |
|
フレームを出力に提示しません。スワップチェーンの状態がテストされ、適切なエラーが返されます。DXGI_PRESENT_TEST は、アイドル状態から切り替えるときにのみ使用することを想定しています。アイドル状態へ切り替えるタイミングの判定には使用しないでください。使用すると、スワップチェーンが全画面モードを終了できなくなる可能性があります。 |
|
ランタイムが、キューに入っている未処理の提示を破棄することを指定します。 |
|
呼び出し元のスレッドがブロックされている場合に、ランタイムが提示(つまり IDXGISwapChain1::Present1 の呼び出し)を DXGI_ERROR_WAS_STILL_DRAWING エラーコードで失敗させることを指定します。ランタイムは、依存関係が解決されるまでスリープするのではなく、DXGI_ERROR_WAS_STILL_DRAWING を返します。 Direct3D 11: この列挙値は Windows 8 以降でサポートされます。 |
| DXGI_PRESENT_RESTRICT_TO_OUTPUT 0x00000010UL |
提示するコンテンツを特定の出力にのみ表示することを示します。そのコンテンツは他の出力には表示されません。たとえば、ユーザーがビデオコンテンツを別の出力へ移動しようとしても、そのビデオコンテンツは表示されません。 Direct3D 11: この列挙値は Windows 8 以降でサポートされます。 注: このフラグは、スワップ効果 DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL または DXGI_SWAP_EFFECT_FLIP_DISCARD とのみ併用してください。それ以外のスワップ効果でこのフラグを使用することは非推奨となっており、将来のバージョンの Windows では動作しない可能性があります。 |
|
ステレオの提示をモノラルに落とす必要がある場合に、左目用ではなく右目用の表示を使用することを示します。 Direct3D 11: この列挙値は Windows 8 以降でサポートされます。 |
|
提示において左バッファーをモノラルバッファーとして使用することを示します。アプリケーションは IDXGISwapChain1::IsTemporaryMonoSupported メソッドを呼び出して、スワップチェーンが「一時的なモノラル」をサポートしているかどうかを判断します。 Direct3D 11: この列挙値は Windows 8 以降でサポートされます。 |
| DXGI_PRESENT_USE_DURATION 0x00000100UL |
このフラグは、カスタムの提示間隔(カスタムのリフレッシュレート)を現在使用しているメディアアプリが設定する必要があります。IDXGISwapChainMedia を参照してください。 注: この値は Windows 8.1 以降でサポートされます。 |
|
ティアリングを許可することは、可変リフレッシュレートのディスプレイの要件です。 Present 中に DXGI_PRESENT_ALLOW_TEARING を使用するための条件は次のとおりです。
|
解説(Remarks)
提示オプションは、IDXGISwapChain::Present または IDXGISwapChain1::Present1 の呼び出し時に指定します。バッファーはスワップチェーンの記述(DXGI_SWAP_CHAIN_DESC または DXGI_SWAP_CHAIN_DESC1 を参照)で指定します。
DXGI_PRESENT_RESTART は、フリップモデルのスワップチェーンかつ全画面の場合にのみ有効です。アプリケーションは DXGI_PRESENT_RESTART を使用して、再生中の不具合から回復したり、以前にキューへ入れた提示を破棄したりできます。以前にキューへ入れた提示の破棄は、それらがウィンドウ表示のシナリオである場合に役立ちます。特に、以前にキューへ入れた提示が古いサイズのウィンドウを前提としている場合があります(つまり、送信後にサイズ変更操作が発生した場合です)。
DXGI_PRESENT_RESTRICT_TO_OUTPUT は、作成時(IDXGIFactory2::CreateSwapChainForHwnd)にコンテンツを制限する特定の出力を指定したスワップチェーンでのみ有効です。制限先の出力が存在しない場合、このフラグは無効です。
DXGI_PRESENT_STEREO_PREFER_RIGHT は、ステレオの提示をモノラルに落とす必要がある場合に、左目(既定)ではなく右目を使用することを示します。一方の側の品質が高い場合(たとえば、標準的な画像からステレオペアを合成した場合など)に、このフラグを使用できます。
DXGI_PRESENT_STEREO_TEMPORARY_MONO は、提示において左バッファーをモノラルバッファーとして使用することを示します。アプリケーションが一時的にステレオコンテンツを持たない場合に、右バッファーの更新を回避するためこのフラグを使用できます。オペレーティングシステムによる大幅な最適化が可能になり、状況によっては目に見えるモード変更のアーティファクトを回避できるため、可能な限りこのフラグを使用してください。
再びステレオを使用すると見込まれるほとんどのアプリケーションでは、モノラルのスワップチェーンへ切り替えるよりも DXGI_PRESENT_STEREO_TEMPORARY_MONO フラグを優先して使用してください。非常に長時間実行されるアプリケーションや、ステレオを表示することがまれなアプリケーションでは、このフラグの使用と未使用メモリという欠点とのバランスを考慮する必要があります。
モノラルのスワップチェーンへ切り替える全画面アプリケーションでは、モード変更が発生し、一般に目に見えるアーティファクト(たとえば「ちらつき」)を伴います。ただし、全画面のスワップチェーンでは一時的なモノラルがサポートされない場合があります。
DXGI_PRESENT_STEREO_PREFER_RIGHT および DXGI_PRESENT_STEREO_TEMPORARY_MONO フラグは、ステレオのスワップチェーンにのみ適用されます。モノラルのスワップチェーンを提示するときにこれらを使用すると、無効な操作となります。
一時的なモノラルをサポートしていないステレオのスワップチェーンを提示するときに DXGI_PRESENT_STEREO_TEMPORARY_MONO フラグを使用すると、エラーが発生し、スワップチェーンは表示されず、提示は DXGI_ERROR_INVALID_CALL を返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum DXGI_PRESENT : unsigned int {
DXGI_PRESENT_TEST = 1,
DXGI_PRESENT_DO_NOT_SEQUENCE = 2,
DXGI_PRESENT_RESTART = 4,
DXGI_PRESENT_DO_NOT_WAIT = 8,
DXGI_PRESENT_STEREO_PREFER_RIGHT = 16,
DXGI_PRESENT_STEREO_TEMPORARY_MONO = 32,
DXGI_PRESENT_RESTRICT_TO_OUTPUT = 64,
DXGI_PRESENT_USE_DURATION = 256,
DXGI_PRESENT_ALLOW_TEARING = 512
} DXGI_PRESENT;[Flags]
public enum DXGI_PRESENT : uint
{
DXGI_PRESENT_TEST = 1,
DXGI_PRESENT_DO_NOT_SEQUENCE = 2,
DXGI_PRESENT_RESTART = 4,
DXGI_PRESENT_DO_NOT_WAIT = 8,
DXGI_PRESENT_STEREO_PREFER_RIGHT = 16,
DXGI_PRESENT_STEREO_TEMPORARY_MONO = 32,
DXGI_PRESENT_RESTRICT_TO_OUTPUT = 64,
DXGI_PRESENT_USE_DURATION = 256,
DXGI_PRESENT_ALLOW_TEARING = 512,
}<Flags>
Public Enum DXGI_PRESENT As UInteger
DXGI_PRESENT_TEST = 1
DXGI_PRESENT_DO_NOT_SEQUENCE = 2
DXGI_PRESENT_RESTART = 4
DXGI_PRESENT_DO_NOT_WAIT = 8
DXGI_PRESENT_STEREO_PREFER_RIGHT = 16
DXGI_PRESENT_STEREO_TEMPORARY_MONO = 32
DXGI_PRESENT_RESTRICT_TO_OUTPUT = 64
DXGI_PRESENT_USE_DURATION = 256
DXGI_PRESENT_ALLOW_TEARING = 512
End Enumimport enum
class DXGI_PRESENT(enum.IntFlag):
DXGI_PRESENT_TEST = 1
DXGI_PRESENT_DO_NOT_SEQUENCE = 2
DXGI_PRESENT_RESTART = 4
DXGI_PRESENT_DO_NOT_WAIT = 8
DXGI_PRESENT_STEREO_PREFER_RIGHT = 16
DXGI_PRESENT_STEREO_TEMPORARY_MONO = 32
DXGI_PRESENT_RESTRICT_TO_OUTPUT = 64
DXGI_PRESENT_USE_DURATION = 256
DXGI_PRESENT_ALLOW_TEARING = 512// DXGI_PRESENT (flags)
pub const DXGI_PRESENT_TEST: u32 = 1;
pub const DXGI_PRESENT_DO_NOT_SEQUENCE: u32 = 2;
pub const DXGI_PRESENT_RESTART: u32 = 4;
pub const DXGI_PRESENT_DO_NOT_WAIT: u32 = 8;
pub const DXGI_PRESENT_STEREO_PREFER_RIGHT: u32 = 16;
pub const DXGI_PRESENT_STEREO_TEMPORARY_MONO: u32 = 32;
pub const DXGI_PRESENT_RESTRICT_TO_OUTPUT: u32 = 64;
pub const DXGI_PRESENT_USE_DURATION: u32 = 256;
pub const DXGI_PRESENT_ALLOW_TEARING: u32 = 512;// DXGI_PRESENT
const (
DXGI_PRESENT_TEST uint32 = 1
DXGI_PRESENT_DO_NOT_SEQUENCE uint32 = 2
DXGI_PRESENT_RESTART uint32 = 4
DXGI_PRESENT_DO_NOT_WAIT uint32 = 8
DXGI_PRESENT_STEREO_PREFER_RIGHT uint32 = 16
DXGI_PRESENT_STEREO_TEMPORARY_MONO uint32 = 32
DXGI_PRESENT_RESTRICT_TO_OUTPUT uint32 = 64
DXGI_PRESENT_USE_DURATION uint32 = 256
DXGI_PRESENT_ALLOW_TEARING uint32 = 512
)const
DXGI_PRESENT_TEST = 1;
DXGI_PRESENT_DO_NOT_SEQUENCE = 2;
DXGI_PRESENT_RESTART = 4;
DXGI_PRESENT_DO_NOT_WAIT = 8;
DXGI_PRESENT_STEREO_PREFER_RIGHT = 16;
DXGI_PRESENT_STEREO_TEMPORARY_MONO = 32;
DXGI_PRESENT_RESTRICT_TO_OUTPUT = 64;
DXGI_PRESENT_USE_DURATION = 256;
DXGI_PRESENT_ALLOW_TEARING = 512;// DXGI_PRESENT
pub const DXGI_PRESENT_TEST: u32 = 1;
pub const DXGI_PRESENT_DO_NOT_SEQUENCE: u32 = 2;
pub const DXGI_PRESENT_RESTART: u32 = 4;
pub const DXGI_PRESENT_DO_NOT_WAIT: u32 = 8;
pub const DXGI_PRESENT_STEREO_PREFER_RIGHT: u32 = 16;
pub const DXGI_PRESENT_STEREO_TEMPORARY_MONO: u32 = 32;
pub const DXGI_PRESENT_RESTRICT_TO_OUTPUT: u32 = 64;
pub const DXGI_PRESENT_USE_DURATION: u32 = 256;
pub const DXGI_PRESENT_ALLOW_TEARING: u32 = 512;const
DXGI_PRESENT_TEST* = 1
DXGI_PRESENT_DO_NOT_SEQUENCE* = 2
DXGI_PRESENT_RESTART* = 4
DXGI_PRESENT_DO_NOT_WAIT* = 8
DXGI_PRESENT_STEREO_PREFER_RIGHT* = 16
DXGI_PRESENT_STEREO_TEMPORARY_MONO* = 32
DXGI_PRESENT_RESTRICT_TO_OUTPUT* = 64
DXGI_PRESENT_USE_DURATION* = 256
DXGI_PRESENT_ALLOW_TEARING* = 512enum DXGI_PRESENT : uint {
DXGI_PRESENT_TEST = 1,
DXGI_PRESENT_DO_NOT_SEQUENCE = 2,
DXGI_PRESENT_RESTART = 4,
DXGI_PRESENT_DO_NOT_WAIT = 8,
DXGI_PRESENT_STEREO_PREFER_RIGHT = 16,
DXGI_PRESENT_STEREO_TEMPORARY_MONO = 32,
DXGI_PRESENT_RESTRICT_TO_OUTPUT = 64,
DXGI_PRESENT_USE_DURATION = 256,
DXGI_PRESENT_ALLOW_TEARING = 512,
}#define global DXGI_PRESENT_TEST 0x1
#define global DXGI_PRESENT_DO_NOT_SEQUENCE 0x2
#define global DXGI_PRESENT_RESTART 0x4
#define global DXGI_PRESENT_DO_NOT_WAIT 0x8
#define global DXGI_PRESENT_STEREO_PREFER_RIGHT 0x10
#define global DXGI_PRESENT_STEREO_TEMPORARY_MONO 0x20
#define global DXGI_PRESENT_RESTRICT_TO_OUTPUT 0x40
#define global DXGI_PRESENT_USE_DURATION 0x100
#define global DXGI_PRESENT_ALLOW_TEARING 0x200
; ※フラグ列挙型。ビットORで組み合わせ可(例: FOO|BAR)。