ID3D10Device::CopyResource, méthode (d3d10.h)
Copiez l’intégralité du contenu de la ressource source vers la ressource de destination à l’aide du GPU.
Syntaxe
void CopyResource(
[in] ID3D10Resource *pDstResource,
[in] ID3D10Resource *pSrcResource
);
Paramètres
[in] pDstResource
Type : ID3D10Resource*
Pointeur vers la ressource de destination (voir ID3D10Resource).
[in] pSrcResource
Type : ID3D10Resource*
Pointeur vers la ressource source (voir ID3D10Resource).
Valeur de retour
None
Remarques
Cette méthode est inhabituelle en ce qu’elle oblige le GPU à effectuer l’opération de copie (similaire à un memcpy par le processeur). Par conséquent, il a quelques restrictions conçues pour améliorer les performances. Pour instance, les ressources source et de destination :
- Il doit s’agir de ressources différentes.
- Doit être du même type.
- Doit avoir des dimensions identiques (largeur, hauteur, profondeur et taille, selon le cas).
- Doit avoir des formats compatibles, ce qui signifie que les formats doivent être identiques ou au moins du même groupe de types. Par exemple, une texture DXGI_FORMAT_R32G32B32_FLOAT peut être copiée dans une texture DXGI_FORMAT_R32G32B32_UINT, car ces deux formats se trouvent dans le groupe DXGI_FORMAT_R32G32B32_TYPELESS. À compter de Direct3D 10.1, CopyResource peut copier entre quelques types de format. Pour plus d’informations, consultez Formater la conversion à l’aide de Direct3D 10.1.
- Peut ne pas être mappé.
Les ressources immuables et de gabarit de profondeur ne peuvent pas être utilisées comme destination. Les ressources créées avec la fonctionnalité d’échantillonnage multiple ne peuvent pas être utilisées comme source ou destination.
La méthode est un appel asynchrone qui peut être ajouté à la file d’attente command-buffer. Cette opération tente de supprimer les blocages de pipeline qui peuvent se produire lors de la copie de données. Pour plus d’informations, consultez Considérations relatives aux performances .
Une application qui doit uniquement copier une partie des données dans une ressource doit utiliser ID3D10Device::CopySubresourceRegion à la place.
Différences entre Direct3D 10 et Direct3D 10.1 : Direct3D 10.1 permet d’utiliser des ressources de gabarit de profondeur en tant que source ou destination. Direct3D 10.1 permet d’utiliser des ressources multi-échantillonnée comme source et destination uniquement si la source et la destination ont un nombre et une qualité identiques. Si la source et la destination diffèrent par le nombre et la qualité multiéchantillons, ou si l’une d’elles est échantillonnée à plusieurs et que l’autre n’est pas échantillonnée à plusieurs, l’appel à ID3D10Device::CopyResource échoue. Il est possible de copier entre des ressources préstructurées+typées et des textures compressées par bloc. Consultez Conversion de format à l’aide de Direct3D 10.1. |
Configuration requise
Plateforme cible | Windows |
En-tête | d3d10.h |
Bibliothèque | D3D10.lib |