次の方法で共有


PFND3DDDI_BLT コールバック関数 (d3dumddi.h)

Blt 関数は、ソース サーフェスの内容をコピー先サーフェスにコピーします。

構文

PFND3DDDI_BLT Pfnd3dddiBlt;

HRESULT Pfnd3dddiBlt(
  HANDLE hDevice,
  const D3DDDIARG_BLT *unnamedParam2
)
{...}

パラメーター

hDevice

ディスプレイ デバイスへのハンドル (グラフィックス コンテキスト)。

unnamedParam2

pData [in]

ビット ブロック転送 (bitblt) のパラメーターを記述する D3DDDIARG_BLT 構造体へのポインター。

戻り値

Blt は、次のいずれかの値を返します。

リターン コード 説明
S_OK リソースのビットが正常に実行されました。
E_OUTOFMEMORY Blt は、完了するために必要なメモリを割り当てませんでした。

備考

Microsoft Direct3D ランタイムは、ユーザー モード ディスプレイ ドライバーの Blt 関数を呼び出して、ソース サーフェスの内容をコピー先のサーフェスにコピーします。 サーフェス参照を割り当て参照にマッピングした後、ユーザー モード ディスプレイ ドライバーは適切なハードウェア コマンドを発行する必要があります。 ソースまたは宛先の割り当てがシステム メモリ内にある場合、未処理のハードウェア コマンド ストリームにシステム メモリ割り当てへの参照が含まれている場合は、ユーザー モード ディスプレイ ドライバーを同期 (つまり、pfnRenderCb 関数を呼び出す) 必要があります。 ソースと宛先の両方の割り当てがシステム メモリ内にある場合、ドライバーは必要に応じて同期する必要がありますが、ソース サーフェイスの内容をコピーしないでください。 Direct3D ランタイムは、pfnRenderCb が返 呼び出しの後に内容をコピーします。

ユーザー モードのディスプレイ ドライバーは、コピー操作中に発生する可能性がある次の条件を処理する必要があります。

  • コピー先サーフェスとソース サーフェスは、同じリソースの一部です (つまり、hSrcResourcehDstResource メンバー D3DDDIARG_BLT 同じリソースへのハンドルを指定します)。
  • ソース四角形と変換先の四角形が重なり合います (つまり、SrcRect 内の RECT 構造体の座標と、D3DDDIARG_BLTの メンバー)。
ユーザー モードディスプレイドライバーは、ビデオメモリからシステムメモリへのビットブレットを含む、ビデオメモリとの間のすべてのビットBLTを処理する必要があります。 ユーザー モード ディスプレイ ドライバーがグラフィックス処理装置 (GPU) を使用してビデオ メモリからシステム メモリにビットレットを発行できない場合、ユーザー モード ディスプレイ ドライバーは CPU を使用してデータをコピーできます。

ユーザー モード ディスプレイ ドライバーは、Microsoft DirectX 8.0 より前に導入された形式でのみ、カラーキーをサポートする必要があります。 DirectX 8.0 以降のランタイムで導入された形式の場合、カラーキーのサポートは必要ありません。

実行する bitblt の型は、D3DDDIARG_BLTFlags メンバーで指定されているビット フィールド フラグによって示されます。 ビデオ メモリからビデオ メモリへのビットレットには、カラーキー、ストレッチ、ミラーリング、線形から sRGB 形式への変換が含まれます。 システム メモリからビデオ メモリへのビットブレットには、ストレッチと線形から sRGB 形式への変換を含めることができます。ただし、このようなビットブレットにはミラーリングやカラーキー処理は含まれていません。 すべてのビデオ メモリからシステム メモリ ビット、システム メモリ ビットブルへのシステム メモリは、ストレート コピーのみです。つまり、このようなビットブレットには、ストレッチ、ミラーリング、カラーキー、または線形から sRGB 形式への変換は含まれていません。 sRGB 形式の詳細については、sRGB Web サイトを参照してください。

深度ステンシル値の変換時に Blt 関数が従う必要があるルールの詳細については、「Depth-Stencil 値のコピー 参照してください。

Direct3D ランタイムは、ユーザー モード ディスプレイ ドライバーの Blt 関数を呼び出して、任意のソース サーフェスの種類 (オフスクリーン プレーン型、レンダー ターゲットタイプ、テクスチャタイプなど) の内容を他の宛先サーフェスタイプにコピーできます。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。
ターゲット プラットフォーム デスクトップ
ヘッダー d3dumddi.h (D3dumddi.h を含む)

関連項目

D3DDDIARG_BLT

D3DDDI_DEVICEFUNCS

pfnRenderCb