D3D11DDIARG_CREATEDEFERREDCONTEXT 構造体 (d3d10umddi.h)
D3D11DDIARG_CREATEDEFERREDCONTEXT構造体は、作成する遅延コンテキストを記述します。
構文
typedef struct D3D11DDIARG_CREATEDEFERREDCONTEXT {
union {
#if ...
[in/out] D3D11DDI_DEVICEFUNCS *p11ContextFuncs;
#else
[in/out] struct D3D11DDI_DEVICEFUNCS *p11ContextFuncs;
#endif
#if ...
[in/out] D3D11_1DDI_DEVICEFUNCS *p11_1ContextFuncs;
#else
[in/out] struct D3D11_1DDI_DEVICEFUNCS *p11_1ContextFuncs;
#endif
#if ...
[in/out] D3DWDDM1_3DDI_DEVICEFUNCS *pWDDM1_3ContextFuncs;
#else
[in/out] struct D3DWDDM1_3DDI_DEVICEFUNCS *pWDDM1_3ContextFuncs;
#endif
#if ...
[in/out] D3DWDDM2_0DDI_DEVICEFUNCS *pWDDM2_0ContextFuncs;
#else
[in/out] struct D3DWDDM2_0DDI_DEVICEFUNCS *pWDDM2_0ContextFuncs;
#endif
#if ...
D3DWDDM2_1DDI_DEVICEFUNCS *pWDDM2_1ContextFuncs;
#else
struct D3DWDDM2_1DDI_DEVICEFUNCS *pWDDM2_1ContextFuncs;
#endif
#if ...
D3DWDDM2_2DDI_DEVICEFUNCS *pWDDM2_2ContextFuncs;
#else
struct D3DWDDM2_2DDI_DEVICEFUNCS *pWDDM2_2ContextFuncs;
#endif
#if ...
D3DWDDM2_6DDI_DEVICEFUNCS *pWDDM2_6ContextFuncs;
#else
struct D3DWDDM2_6DDI_DEVICEFUNCS *pWDDM2_6ContextFuncs;
#endif
};
[in] D3D10DDI_HDEVICE hDrvContext;
[in] D3D10DDI_HRTCORELAYER hRTCoreLayer;
union {
[in] const D3D11DDI_CORELAYER_DEVICECALLBACKS *p11UMCallbacks;
const D3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_0UMCallbacks;
const D3DWDDM2_2DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_2UMCallbacks;
const D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_6UMCallbacks;
};
[in] UINT Flags;
} D3D11DDIARG_CREATEDEFERREDCONTEXT;
メンバー
[in/out] p11ContextFuncs
ユーザー モードのディスプレイ ドライバーが遅延コンテキストの関数のテーブルで埋める D3D11DDI_DEVICEFUNCS構造体への ポインター。 Direct3D ランタイムは、これらの関数を使用して、ユーザー モードのディスプレイ ドライバーと通信します。
遅延コンテキストに利用されない関数の一覧については、「遅延コンテキストの DDI 関数を除外する」を参照してください。
[in/out] p11_1ContextFuncs
ユーザー モードのディスプレイ ドライバーが遅延コンテキストの関数のテーブルで埋める D3D11_1DDI_DEVICEFUNCS構造体への ポインター。 Direct3D ランタイムは、これらの関数を使用して、ユーザー モードのディスプレイ ドライバーと通信します。
Windows 8 以降でサポートされています。
[in/out] pWDDM1_3ContextFuncs
ユーザー モードのディスプレイ ドライバーが遅延コンテキストの関数のテーブルで埋める D3DWDDM1_3DDI_DEVICEFUNCS構造体への ポインター。 Direct3D ランタイムは、これらの関数を使用して、ユーザー モードのディスプレイ ドライバーと通信します。
Windows 8.1 以降でサポートされています。
[in/out] pWDDM2_0ContextFuncs
ユーザー モード ディスプレイ ドライバーが WDDM 2.0 のデバイス関数テーブルに格納する D3DWDDM2_0DDI_DEVICEFUNCS構造体への ポインター。 Direct3D ランタイムは、これらの関数を使用して、ユーザー モードのディスプレイ ドライバーと通信します。
pWDDM2_1ContextFuncs
ユーザー モードディスプレイ ドライバーが WDDM 2.1 のデバイス関数テーブルに格納する D3DWDDM2_1DDI_DEVICEFUNCS構造体への ポインター。 Direct3D ランタイムは、これらの関数を使用して、ユーザー モードのディスプレイ ドライバーと通信します。
pWDDM2_2ContextFuncs
ユーザー モードディスプレイ ドライバーが WDDM 2.2 のデバイス関数テーブルに入力する D3DWDDM2_2DDI_DEVICEFUNCS構造体への ポインター。 Direct3D ランタイムは、これらの関数を使用して、ユーザー モードのディスプレイ ドライバーと通信します。
pWDDM2_6ContextFuncs
ユーザー モード ディスプレイ ドライバーが WDDM 2.6 のデバイス関数テーブルに格納する D3DWDDM2_6DDI_DEVICEFUNCS構造体への ポインター。 Direct3D ランタイムは、これらの関数を使用して、ユーザー モードのディスプレイ ドライバーと通信します。
[in] hDrvContext
ドライバー プライベート ハンドル ストレージのドライバー コンテキストへのハンドル。
[in] hRTCoreLayer
ドライバーが Direct3D ランタイムにコールバックして Direct3D 11 のコア機能にアクセスするときに使用するハンドル (つまり、ドライバーが p11UMCallbacks メンバーが指定する関数を呼び出すとき)。
[in] p11UMCallbacks
ドライバーが 主要なユーザー モード ランタイム機能にアクセスするために使用できる Direct3D 11 ランタイム コールバック関数の WDDM 2.0 より前の関数テーブルを含むD3D11DDI_CORELAYER_DEVICECALLBACKS構造体へのポインター。
pWDDM2_0UMCallbacks
ドライバーが 主要なユーザー モード ランタイム機能にアクセスするために使用できる Direct3D 11 コア レイヤー デバイス コールバック関数の WDDM 2.0 関数テーブルを含むD3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS構造体へのポインター。
pWDDM2_2UMCallbacks
ドライバーが 主要なユーザー モード ランタイム機能にアクセスするために使用できる Direct3D 11 コア レイヤー デバイス コールバック関数の WDDM 2.2 関数テーブルを含むD3DWDDM2_2DDI_CORELAYER_DEVICECALLBACKS構造体へのポインター。
pWDDM2_6UMCallbacks
ドライバーが 主要なユーザー モード ランタイム機能にアクセスするために使用できる Direct3D 11 コア レイヤー デバイス コールバック関数の WDDM 2.6 関数テーブルを含むD3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS構造体へのポインター。
[in] Flags
レンダリング デバイスの作成方法を識別するD3D10DDI_CREATEDEVICE_FLAG_XXX フラグ値の有効なビットごとの OR。 Direct3D ランタイムでは、次のフラグがサポートされています。
フラグ | 説明 |
---|---|
D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATION (0x1) | 設定すると、ユーザー モード ディスプレイ ドライバーは、Direct3D ランタイムから関数の呼び出しを処理するときに、複数のスレッドを同時に実行しないでください。 ドライバーは通常、複数のスレッドを起動して実行して、D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATIONが設定されていない限り、操作をより高速に処理できます。 |
D3D11DDI_CREATEDEVICE_FLAG_SINGLETHREADED (0x10) | このフラグは、アプリケーションがシングル スレッドであることをユーザー モード ディスプレイ ドライバーに通知します。 Direct3D バージョン 11 ランタイムでは、ドライバーでこの操作モードが許可されている場合、複数のアプリケーション スレッドがドライバーに入ることができます。 ただし、すべてのアプリケーションで複数のスレッドを実行できるわけではありません。 このフラグが設定されている場合、ドライバーは複数のスレッドが入力して同時に実行することを想定しません。 このフラグが存在する場合、ドライバーは同期を回避できます。 |
Flags メンバーの0xE マスクに設定されているフラグ | このフラグは、ドライバーがディスプレイ デバイスに対してサポートする必要がある 3-D パイプラインのレベルを表します。 ドライバーは、次の定数とマクロを使用して、サポートする 3-D パイプライン レベルを表す D3D11DDI_3DPIPELINELEVEL 列挙から値の 1 つを抽出します。 |
Flags メンバーの値は、D3D11DDI_3DPIPELINESUPPORT_CAPS構造体の Caps メンバーのように書式設定されます。
#define D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT (0x1)
#define D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_MASK (0x7 << D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT)
#define D3D11DDI_EXTRACT_3DPIPELINELEVEL_FROM_FLAGS( Flags ) \
((D3D11DDI_3DPIPELINELEVEL)(((Flags) & D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_MASK) >> \
D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT))
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 |
Header | d3d10umddi.h (D3d10umddi.h を含む) |
こちらもご覧ください
D3D11DDI_3DPIPELINESUPPORT_CAPS