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 の呼び出しが返された後にコンテンツをコピーします。

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

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

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

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

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

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

要件

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

こちらもご覧ください

D3DDDIARG_BLT

D3DDDI_DEVICEFUNCS

pfnRenderCb