次の方法で共有


全画面モードの動作

ユーザー モードのディスプレイ ドライバーは、レンダリング デバイスが全画面表示モードであることを判断できます。

  • ドライバーの OpenResource 関数の呼び出しで pResource パラメーターが指すD3DDDIARG_OPENRESOURCE構造体の Flags メンバーで全画面表示ビット フィールド フラグが設定されている場合。

  • ドライバーの CreateResource 関数の呼び出しで pResource パラメーターが指すD3DDDIARG_CREATERESOURCE構造体の Flags メンバーにプライマリ ビット フィールド フラグが設定されている場合。

Microsoft DirectX 9.0 以前用に開発されたアプリケーションでは、Microsoft Direct3D ランタイムが OpenResource を呼び出して共有プライマリ サーフェスを開き、CreateResource で追加のバック バッファーを作成します。 Microsoft DirectX 9L アプリケーションでは、Direct3D ランタイムが CreateResourceを呼び出して (OpenResource を呼び出さずに) すべてのスワップ チェーン バッファーを作成します。 Direct3D ランタイムは、OpenResource 関数と CreateResource 関数の両方の呼び出しで pResource パラメーターが指すD3DDDIARG_CREATERESOURCEおよびD3DDDIARG_OPENRESOURCE構造体の 回転メンバーの主サーフェスの向きをそれぞれ指定します。

全画面表示デバイスの場合、ユーザー モードのディスプレイ ドライバーは、回転されたリソースをロックし、回転されたリソースにレンダリングし、回転されたリソースからビット ブロック転送 (bitblt) を実行する必要があります。 通常、ユーザー モード ディスプレイ ドライバーは、回転した向き (すべてのロック、bitblt、レンダリングはこれらの中間レンダー ターゲットに移動します) で中間レンダー ターゲットを作成し、横向き (つまり、デジタル-アナログ コンバーター [DAC] がスキャンに使用する向き) でプライマリ割り当てを作成します。 データを反転するためにユーザー モード ディスプレイ ドライバーが呼び出されると、pfnPresentCb 関数を呼び出してフリップ コマンドを発行する前に、中間レンダー ターゲットからランドスケープ バッファーへの回転ビットブレットが実行されます。

ユーザー モードディスプレイドライバーは、回転されたリソースと回転しないリソースを含むビットセットを実行する必要がある場合は常に、Direct3D ランタイムは、ドライバーの Blt 関数の呼び出しで、ドライバーの Blt 関数の呼び出しで、D3DDDIARG_BLT構造体の Flags メンバーの回転ビット フィールド フラグを指定し、ビットブレットに対して適切な回転が必要であることをドライバーに示します。

DirectX 9L アプリケーションは回転対応にすることができ、すべてを適切な向きでレンダリングし、回転したバッファーへのロックを適切に処理します。 Direct3D ランタイムが回転対応アプリケーションのスワップ チェーンを作成すると、ユーザー モード ディスプレイ ドライバーが回転対応アプリケーションを動作させるために特別なアクションを実行する必要がないため、ランタイムは常に、D3DDDIARG_CREATERESOURCE構造体の Rotation メンバーでD3DDDI_ROTATION_IDENTITYとして構造は、ユーザー モードのディスプレイ ドライバーが回転対応アプリケーションを動作させるために特別なアクションを実行する必要がないためです。