次の方法で共有


LPD3DHAL_CONTEXTCREATECB コールバック関数 (d3dhal.h)

D3dContextCreate 関数はコンテキストを作成します。

構文

LPD3DHAL_CONTEXTCREATECB Lpd3dhalContextcreatecb;

DWORD Lpd3dhalContextcreatecb(
  LPD3DHAL_CONTEXTCREATEDATA unnamedParam1
)
{...}

パラメーター

unnamedParam1

pccd [in]

コンテキストの作成に必要な情報と、ドライバーが新しいコンテキストに格納する必要があるデータを含む D3DHAL_CONTEXTCREATEDATA 構造体を指します。

戻り値

D3dContextCreate は、次のいずれかのコールバック コードを返します。

備考

D3dContextCreate は、Microsoft Direct3D をサポートするドライバーに実装する必要があります。 次の手順を実行する必要があります。

  • ドライバーがレンダリングを実行するために必要なすべての情報を使用して、ドライバーのコンテキストを初期化します。 これには、lpDDSLcl および lpDDSZLcl pccd のD3DHAL_CONTEXTCREATEDATA構造体のメンバーがそれぞれ指すレンダリング ターゲットと深度バッファーのコンテキストとの関連付け 含まれます。
  • この新しいコンテキストの一意のコンテキスト ID を生成し、D3DHAL_CONTEXTCREATEDATAの dwhContext メンバーで返します。 Direct3D では、この Direct3D デバイスに対して行われる後続のコールバックごとに、このコンテキスト ID が使用されます。 ドライバーは、0 のコンテキスト ハンドルを作成しないでください。
  • D3DHAL_CONTEXTCREATEDATAの ddrval メンバーを成功時にDD_OKし、コンテキストを作成できない場合はD3DHAL_OUTOFCONTEXTSに設定します。
  • DDHAL_DRIVER_HANDLEDを返します。
D3dContextCreate は、D3DHAL_CONTEXTCREATEDATAのメンバー lpDDLcl として渡された DD_DIRECTDRAW_LOCAL 構造体へのポインターをキャッシュしないでください。 その後、ドライバーがこのDD_DIRECTDRAW_LOCAL ポインターを介してアクセスされる情報を必要とする場合、ドライバーは、ドライバーのプライベート コンテキスト データ構造に情報を格納する必要があります。

状態はコンテキスト間で共有されません。そのため、ドライバーは、各コンテキストの完全な状態情報を維持する必要があります。 この状態は、D3dDrawPrimitives2 後続の呼び出しによって変更されます。

ドライバーは、コンテキスト内で作成されたすべてのテクスチャ ハンドルを参照できる必要があります。 その後、ドライバーは、D3dContextDestroy 呼び出しが行われたときに、このコンテキスト内で作成されたテクスチャに関連するすべてのドライバー固有のデータをクリーンアップできます。

D3dContextCreate は、PDEV 無効にして呼び出すことができます。 PDEV は、ディスプレイ ドライバーの DrvAssertMode 関数を呼び出すことによって無効または有効になります。 詳細については、「PDEV の管理」を参照してください。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー d3dhal.h (D3dhal.h を含む)

関連項目

D3DHAL_CONTEXTCREATEDATA

D3dContextDestroy

D3dDrawPrimitives2

DD_DIRECTDRAW_LOCAL