共用方式為


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 已成功執行資源的 bitblt。
E_OUTOFMEMORY Blt 無法配置所需的記憶體,使其完成。

備註

Microsoft Direct3D 執行時間會呼叫使用者模式顯示驅動程式的 Blt 函式,將來源介面的內容複製到目的地介面。 將介面參考對應至配置參考之後,使用者模式顯示驅動程式應該發出適當的硬體命令。 如果來源或目的地配置位於系統記憶體中,則使用者模式顯示驅動程式可能需要同步處理 (亦即,如果未完成的硬體命令數據流包含系統記憶體配置的參考,請呼叫 pfnRenderCb 函式) 。 如果來源和目的地配置都位於系統記憶體中,驅動程式應該視需要同步處理,但不應該複製來源介面的內容。 Direct3D 運行時間會在 呼叫 pfnRenderCb 傳回之後複製內容。

使用者模式顯示驅動程式必須處理複製作業期間可能發生的下列情況:

  • 目的地和來源介面是相同資源 (的一部分,也就是D3DDDIARG_BLT的hSrcResourcehDstResource 成員會指定相同資源的句柄) 。
  • 來源和目的地矩形會重疊 (,也就是D3DDDIARG_BLT SrcRectDstRect 成員中 RECT 結構的座標重疊) 。
使用者模式顯示驅動程式必須處理來自視訊記憶體的所有 bitblt,包括從視訊記憶體到系統記憶體的 bitblt。 如果使用者模式顯示驅動程式無法使用圖形處理單位 (GPU) 發出從視訊記憶體到系統記憶體的位,則使用者模式顯示驅動程式可以使用 CPU 複製數據。

使用者模式顯示驅動程序必須僅支援使用 Microsoft DirectX 8.0 之前引進的格式的色彩索引鍵。 對於 DirectX 8.0 和更新版本中引進的格式,不需要色彩索引鍵支援。

要執行的 bitblt 類型會透過D3DDDIARG_BLTFlags 成員中指定的位欄位旗標來指出。 視訊記憶體到視訊記憶體可以包含色彩索引鍵、延展、鏡像和線性到 sRGB 格式轉換。 系統記憶體到視訊記憶體可以包含延展和線性到 sRGB 格式轉換;不過,這些類型的 bitblts 永遠不會包含鏡像或色彩索引鍵。 所有對系統記憶體位的視訊記憶體,以及系統記憶體到系統記憶體位的直接複本;也就是說,這些類型的 bitblts 絕不會包含延展、鏡像、色彩索引鍵或線性對 sRGB 格式轉換。 如需 sRGB 格式的詳細資訊,請參閱 sRGB 網站。

如需 Blt 函式在轉換深度樣板值時必須遵循之規則的詳細資訊,請參閱 複製 Depth-Stencil 值

Direct3D 執行時間可以呼叫使用者模式顯示驅動程式的 Blt 函式,將任何來源介面類型的內容複製到任何其他目的地介面類型 (,例如 offscreen-plain 類型、轉譯目標類型或紋理類型) 。

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。
目標平台 桌面
標頭 d3dumddi.h (include D3dumddi.h)

另請參閱

D3DDDIARG_BLT

D3DDDI_DEVICEFUNCS

pfnRenderCb