我有一個ID3D11Texture2D的句柄,但沒有訪問它的ID3D11DeviceContext或ID3D11Device。我想將該紋理複製到其他ID3D11Device上的其他紋理。紋理不是用任何共享標誌創建的。如果我嘗試使用ID3D11DeviceContext :: CopyResource進行復制,則會發出警告「D3D11 CORRUPTION參數與設備不匹配」。我如何複製紋理或其內容?我想這是可能的,因爲例如OpenVR API只使用沒有任何上下文的紋理句柄。在其他D3D11設備上覆制Direct3D11紋理
1
A
回答
2
如果未使用共享標誌創建紋理,則不能在兩個設備之間使用它。
但你有紋理對象,這是一個ID3D11DeviceChild
,這是足以讓訪問ID3D11DeviceChild::GetDevice
檢索設備,並通過擴展ID3D11Device::GetImmediateContext
現在,您可以訪問設備和上下文,你可以使用原始設備上的共享標誌D3D11_RESOURCE_MISC_SHARED
或您自己的創建額外紋理,並使用ID3D11Device::OpenSharedResource
檢索另一個上的對象。最後將原始紋理複製到新對象中CopyResource
不要忘記,所有這些文章Get
都會在您完成這些操作後,添加對需要釋放的對象的引用。
+1
工程就像一個魅力,完美地解決我的問題。非常感謝! – superg
相關問題
- 1. Android - 重複指紋到其他設備
- 2. 將一部分2D紋理複製到另一個Direct3D11
- 3. iOS恢復其他設備上的IAP
- 4. 仿射紋理映射在D3D11/HLSL
- 5. cocos2d - 在設備上找不到紋理
- 6. 從一個D3D11設備複製資源到另一個
- 7. 紋理複製opengl
- 8. iOS5上的GLKit:設置紋理可以防止其他繪圖
- 9. iOS Key Chain alternative無法在其他設備上恢復
- 10. WebGL複製紋理framebuffer紋理framebuffer?
- 11. iOS Deeplink在一個設備上工作,但在其他設備上不工作
- 12. 在某些設備上運行但未在其他設備上找到Android類
- 13. 視圖僅在1個設備上的按鈕和textView上繪製,但不在其他設備上
- 14. 複製紋理對象
- 15. SWIFT:控制其他用戶設備上的視圖
- 16. 渲染紋理不允許其他紋理顯示libgdx java
- 17. 多紋理將無法在另一臺設備上工作?
- 18. Unity3D - 將在iOS設備上剪切紋理的着色器
- 19. 在蘋果設備上的WebGL紋理紅色和閃爍
- 20. 無法在真實設備上使用OpenGL ES映射紋理
- 21. 在某些設備上不顯示OpenGL ES 2.0紋理
- 22. 在Linux中複製設備
- 23. 找出其他4個紋理座標?
- 24. 在另一個紋理上重複紋理的一部分
- 25. Direct3D紋理後處理/複製
- 26. Blinn-Phong底紋HLSL和D3D11:點光源
- 27. getContentLength()在某些設備上返回-1而不是其他設備
- 28. AVAudioPlayer:音量按鈕在某些設備上工作,而不是其他設備
- 29. 應用程序適用於某些設備,但在其他設備上崩潰
- 30. Android Studio Error..Work在某些設備上而不是其他設備
如果你不使用共享,你必須通過CPU內存複製它,這將是非常緩慢。 –
@ChuckWalbourn複製紋理到CPU我需要先將它複製到分段紋理中?要做到這一點,我需要設備環境,我沒有? – superg
如果沒有直接的設備上下文,則不能執行任何複製。 –