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_BLTの hSrcResource メンバーと hDstResource メンバー)。
- ソース四角形と変換先の四角形が重なっています (つまり、重複している SrcRect メンバーと DstRect メンバー内の RECT 構造体の座標D3DDDIARG_BLT)。
ユーザー モード ディスプレイ ドライバーは、Microsoft DirectX 8.0 より前に導入された形式でのみカラーキーをサポートする必要があります。 DirectX 8.0 以降のランタイムで導入された形式の場合、カラーキーのサポートは必要ありません。
実行する bitblt の型は、D3DDDIARG_BLTの Flags メンバーで指定されているビット フィールド フラグを介して示されます。 ビデオ メモリからビデオ メモリへのビットブレットには、カラーキー、ストレッチ、ミラーリング、線形から sRGB 形式への変換を含めることができます。 システム メモリからビデオ メモリへのビットブレットには、ストレッチと線形から sRGB 形式への変換を含めることができます。ただし、これらの種類のビットレットには、ミラーリングやカラーキー処理は含まれません。 システム メモリ ビットへのすべてのビデオ メモリとシステム メモリ ビットへのシステム メモリは、ストレート コピーのみです。つまり、これらの種類のビットレットには、ストレッチ、ミラーリング、カラーキー、または線形から sRGB 形式への変換は含まれません。 sRGB 形式の詳細については、 sRGB Web サイトを参照してください。
深度ステンシル値を変換するときに Blt 関数が従う必要があるルールの詳細については、「 Depth-Stencil 値のコピー」を参照してください。
Direct3D ランタイムは、ユーザー モード ディスプレイ ドライバーの Blt 関数を呼び出して、任意のソース サーフェスの種類 (offscreen-plain 型、render-target 型、テクスチャの種類など) の内容を他の変換先サーフェスの種類にコピーできます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
対象プラットフォーム | デスクトップ |
Header | d3dumddi.h (D3dumddi.h を含む) |