ID3D10Device::CopyResource-Methode (d3d10.h)
Kopieren Sie den gesamten Inhalt der Quellressource mithilfe der GPU in die Zielressource.
Syntax
void CopyResource(
[in] ID3D10Resource *pDstResource,
[in] ID3D10Resource *pSrcResource
);
Parameter
[in] pDstResource
Typ: ID3D10Resource*
Ein Zeiger auf die Zielressource (siehe ID3D10Resource).
[in] pSrcResource
Typ: ID3D10Resource*
Ein Zeiger auf die Quellressource (siehe ID3D10Resource).
Rückgabewert
Keine
Bemerkungen
Diese Methode ist insofern ungewöhnlich, als sie dazu führt, dass die GPU den Kopiervorgang ausführt (ähnlich einem Memcpy durch die CPU). Daher gibt es einige Einschränkungen, die zur Verbesserung der Leistung entwickelt wurden. Für instance die Quell- und Zielressourcen:
- Es müssen unterschiedliche Ressourcen sein.
- Muss der gleiche Typ sein.
- Muss identische Abmessungen aufweisen (einschließlich Breite, Höhe, Tiefe und Größe nach Bedarf).
- Muss über kompatible Formate verfügen, was bedeutet, dass die Formate identisch oder mindestens aus derselben Typgruppe sein müssen. Beispielsweise kann eine DXGI_FORMAT_R32G32B32_FLOAT Textur in eine DXGI_FORMAT_R32G32B32_UINT Textur kopiert werden, da sich beide Formate in der DXGI_FORMAT_R32G32B32_TYPELESS Gruppe befinden. Ab Direct3D 10.1 kann CopyResource zwischen einigen Formattypen kopieren. Weitere Informationen finden Sie unter Formatkonvertierung mit Direct3D 10.1.
- Möglicherweise wird derzeit nicht zugeordnet.
Unveränderliche Und Tiefenschablonenressourcen können nicht als Ziel verwendet werden. Ressourcen, die mit der Multisampling-Funktion erstellt wurden, können weder als Quelle noch als Ziel verwendet werden.
Die -Methode ist ein asynchroner Aufruf, der der Befehlspufferwarteschlange hinzugefügt werden kann. Dadurch wird versucht, Pipeline-Würfe zu entfernen, die beim Kopieren von Daten auftreten können. Weitere Informationen finden Sie unter Leistungsüberlegungen .
Eine Anwendung, die nur einen Teil der Daten in einer Ressource kopieren muss, sollte stattdessen ID3D10Device::CopySubresourceRegion verwenden.
Unterschiede zwischen Direct3D 10 und Direct3D 10.1: Direct3D 10.1 ermöglicht die Verwendung von Tiefenschablonenressourcen als Quelle oder Ziel. Direct3D 10.1 ermöglicht die Verwendung mehrerer Ressourcen als Quelle und Ziel nur, wenn quelle und ziel identische Anzahl und Qualität mit mehreren Zählern aufweisen. Wenn sich Quelle und Ziel in der Anzahl und Qualität mit mehreren Zählern unterscheiden oder einer von ihnen multisampled ist und der andere nicht multisampled ist, schlägt der Aufruf von ID3D10Device::CopyResource fehl. Es ist möglich, zwischen vorstrukturierten+typisierten Ressourcen und blockkomprimierten Texturen zu kopieren. Siehe Formatkonvertierung mit Direct3D 10.1. |
Anforderungen
Zielplattform | Windows |
Kopfzeile | d3d10.h |
Bibliothek | D3D10.lib |