PFND3D10DDI_RESOURCECOPY回呼函式 (d3d10umddi.h)
ResourceCopy 函式會將整個來源資源複製到目的地資源。
語法
PFND3D10DDI_RESOURCECOPY Pfnd3d10ddiResourcecopy;
void Pfnd3d10ddiResourcecopy(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HRESOURCE unnamedParam2,
D3D10DDI_HRESOURCE unnamedParam3
)
{...}
參數
unnamedParam1
hDevice [in]
顯示裝置的句柄(圖形內容)。
unnamedParam2
hDstResource [in]
要複製到目的地資源的句柄。
unnamedParam3
hSrcResource [in]
要從中複製的來源資源句柄。
傳回值
沒有
言論
驅動程式可以使用 pfnSetErrorCb 回呼函式來設定錯誤碼。
Microsoft Direct3D 運行時間會呼叫使用者模式顯示驅動程式的 ResourceCopy 函式,以通知驅動程式從指定的來源資源複製到指定的目的地資源。 來源和目的地資源不能是相同的資源。 來源和目的地資源都必須是相同類型的資源,而且具有相同維度。 這兩個資源的格式類型(DXGI_FORMAT型別值)必須彼此轉換。 來源和目的地資源目前不得對應。 此外,資源建立旗標會限制資源是否可以參與複製作業。
除了D3DDDIERR_DEVICEREMOVED以外,驅動程式不應該發生任何錯誤。 因此,如果驅動程式通過任何錯誤,除了 D3DDDIERR_DEVICEREMOVED 之外,在呼叫 pfnSetErrorCb 函式時,Direct3D 運行時間會判斷錯誤是否重要。 即使移除裝置,驅動程式也不需要傳回D3DDDIERR_DEVICEREMOVED;不過,如果裝置移除干擾了 ResourceCopy 的作業(通常不應該發生),驅動程式可以傳回D3DDDIERR_DEVICEREMOVED。
ResourceCopy Direct3D 10.1 版本與 Direct3D 10.0 版本在呼叫驅動程式 CreateResource(D3D10) 函式時所建立之來源和目的地資源的 D3D10DDIARG_CREATERESOURCE 成員,具有與 Direct3D 10.0 版本的主要功能差異。 針對 ResourceCopy的 Direct3D 10.0 版本,來源和目的地資源的 ResourceDimension D3D10DDIARG_CREATERESOURCE 成員必須相符。 Direct3D 10.1 版的 ResourceCopy 可讓您稍微放鬆來源和目的地資源的 ResourceDimension 成員D3D10DDIARG_CREATERESOURCE成員。 Direct3D 10.1 版的 ResourceCopy 可讓您在 TexCube 目的地資源上複製 Tex2D 來源資源,或在 Tex2D 目的地資源上複製 TexCube 來源資源。 此外,在資源層級的 TexCube 差異在 Direct3D 10.1 版中已消失。 Direct3D 10.1 版的 ResourceCopy 只代表是否可以複製 TexCube。 在 Direct3D 10.0 版中,複製資源、驗證多個轉譯目標等等(也就是說,需要資源類型完全相同的各種作業)都包含了 TexCube 以納入資源類型的區別。 在 Direct3D 10.1 版中,運行時間只能判斷 Tex2D。
下列各節列出複製和轉換的條件:
複製
若要複製,ResourceCopy 可確保來源和目的地資源是透過驅動程式的 CreateResource(D3D10) 函式建立,並符合下列條件:
- 目的地資源不是使用在 D3D10DDIARG_CREATERESOURCE 結構 Usage 成員中設定的D3D10_DDI_USAGE_IMMUTABLE值所建立。
- 來源和目的地資源是使用相同的資源類型和維度建立的,方法是在 D3D10DDIARG_CREATERESOURCE 的 ResourceDimension 成員中設定相同的值。
- 來源和目的地資源不是完全相同資源的一部分。
- D3D10DDIARG_CREATERESOURCE的 Format 成員中指定的每個來源和目的地資源格式都位於相同的無類型群組中。
- 來源和目的地資源必須具有相同數量的樣本和品質等級:除了單一取樣的資源,這些資源必須只有相同的樣本數目。
轉換
若要進行轉換,ResourceCopy 可確保來源和目的地資源是透過驅動程式的 CreateResource(D3D10) 函式建立,並符合下列條件:
- 目的地資源不是使用在 D3D10DDIARG_CREATERESOURCE 結構 Usage 成員中設定的D3D10_DDI_USAGE_IMMUTABLE值所建立。
- 來源和目的地資源是以相同的資源類型(緩衝區、一維(1D)紋理等方式建立的,方法是在 D3D10DDIARG_CREATERESOURCE的 ResourceDimension 成員中設定相同的值。
- 來源和目的地資源的維度會與轉換相符。
- 來源和目的地資源不是完全相同資源的一部分。
- D3D10DDIARG_CREATERESOURCE Format 成員中指定的每個來源和目的地資源格式都支援適當的轉換作業。 針對已誤用區塊壓縮的資源,維度全都會驗證為兩個電源。
- 來源和目的地資源必須具有相同數量的樣本和品質等級:除了單一取樣的資源,這些資源必須只有相同的樣本數目。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows作系統中使用。 |
目標平臺 | 桌面 |
標頭 | d3d10umddi.h (包括 D3d10umddi.h) |