PFND3D10DDI_RESOURCECOPY fonction de rappel (d3d10umddi.h)
La fonction ResourceCopy copie une ressource source entière vers une ressource de destination.
Syntaxe
PFND3D10DDI_RESOURCECOPY Pfnd3d10ddiResourcecopy;
void Pfnd3d10ddiResourcecopy(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HRESOURCE unnamedParam2,
D3D10DDI_HRESOURCE unnamedParam3
)
{...}
Paramètres
unnamedParam1
hDevice [in]
Handle de l’appareil d’affichage (contexte graphique).
unnamedParam2
hDstResource [in]
Handle vers la ressource de destination vers laquelle copier.
unnamedParam3
hSrcResource [in]
Handle vers la ressource source à partir duquel copier.
Valeur de retour
Aucun
Remarques
Le pilote peut utiliser la fonction de rappel pfnSetErrorCb pour définir un code d’erreur.
Le runtime Microsoft Direct3D appelle la fonction ResourceCopy du pilote d’affichage en mode utilisateur pour informer le pilote de copier à partir de la ressource source spécifiée vers la ressource de destination spécifiée. Les ressources source et de destination ne peuvent pas être la même ressource. Les ressources sources et de destination doivent être du même type de ressource et avoir les mêmes dimensions. Les types de format (valeurs DXGI_FORMAT typées) des deux ressources doivent être castables entre elles. La source et la ressource de destination ne doivent pas être mappées. En outre, les indicateurs de création de ressource limitent si la ressource peut participer à l’opération de copie.
Le pilote ne doit pas rencontrer d’erreur, à l’exception de D3DDDIERR_DEVICEREMOVED. Par conséquent, si le pilote transmet une erreur, à l’exception de D3DDDIERR_DEVICEREMOVED, dans un appel à la fonction pfnSetErrorCb, le runtime Direct3D détermine que l’erreur est critique. Même si l’appareil a été supprimé, le pilote n’est pas tenu de retourner D3DDDIERR_DEVICEREMOVED ; toutefois, si la suppression de l’appareil interfère avec l’opération de ResourceCopy (ce qui ne doit généralement pas se produire), le pilote peut retourner D3DDDIERR_DEVICEREMOVED.
La version Direct3D 10.1 de ResourceCopy présente une différence de fonctionnalité majeure par rapport à la version Direct3D 10.0 en ce qui concerne le membre ResourceDimension de D3D10DDIARG_CREATERESOURCE pour les ressources source et de destination créées dans les appels à la fonction CreateResource(D3D10) du pilote. Pour la version Direct3D 10.0 de ResourceCopy, le membre ResourceDimension de D3D10DDIARG_CREATERESOURCE pour les ressources source et de destination doit correspondre. La version Direct3D 10.1 de ResourceCopy permet une légère détente pour le membre ResourceDimension de D3D10DDIARG_CREATERESOURCE pour les ressources source et de destination. La version Direct3D 10.1 de ResourceCopy permet la copie des ressources sources Tex2D sur les ressources de destination TexCube ou les ressources sources TexCube sur les ressources de destination Tex2D. En outre, la distinction entre TexCube au niveau de la ressource est passée dans Direct3D version 10.1. La version Direct3D 10.1 de ResourceCopy indique uniquement s’il peut copier un TexCube. Dans Direct3D version 10.0, la copie d’une ressource, la validation d’une cible de rendu multiple, et ainsi de suite (c’est-à-dire les différentes opérations qui ont exigé que le type de ressource soit identique) incluaient toutes la distinction entre TexCube et le type de ressource. Dans Direct3D version 10.1, le runtime peut déterminer uniquement Tex2D.
Les sections suivantes répertorient les conditions de copie et de conversion :
copie de
Pour la copie, ResourceCopy garantit que les ressources source et de destination ont été créées via la fonction CreateResource(D3D10) du pilote avec les conditions suivantes :
- La ressource de destination n’a pas été créée avec la valeur D3D10_DDI_USAGE_IMMUTABLE définie dans le membre Utilisation de la structure D3D10DDIARG_CREATERESOURCE.
- Les ressources source et de destination ont été créées avec le même type de ressource et la même dimensionnalité (mémoire tampon, texture unidimensionnelle (1D), et ainsi de suite) en définissant la même valeur dans le membre ResourceDimension de D3D10DDIARG_CREATERESOURCE.
- Les ressources source et de destination ne font pas partie exactement de la même ressource.
- Chaque format de ressource source et de destination spécifié dans le Format membre de D3D10DDIARG_CREATERESOURCE se trouve dans le même groupe sans type.
- Les ressources source et de destination doivent avoir le même nombre d’échantillons et de niveaux de qualité ; à l’exception des ressources à échantillon unique, qui ne doivent avoir que le même nombre d’échantillons.
conversion de
Pour la conversion, ResourceCopy garantit que les ressources source et de destination ont été créées via la fonction CreateResource(D3D10) du pilote avec les conditions suivantes :
- La ressource de destination n’a pas été créée avec la valeur D3D10_DDI_USAGE_IMMUTABLE définie dans le membre Utilisation de la structure D3D10DDIARG_CREATERESOURCE.
- Les ressources source et de destination ont été créées avec le même type de ressource (mémoire tampon, texture unidimensionnelle (1D), et ainsi de suite) en définissant la même valeur dans le membre ResourceDimension de D3D10DDIARG_CREATERESOURCE.
- Les dimensions des ressources source et de destination correspondent à la conversion.
- Les ressources source et de destination ne font pas partie exactement de la même ressource.
- Chaque format de ressource source et de destination spécifié dans le Format membre de D3D10DDIARG_CREATERESOURCE prend en charge l’opération de conversion appropriée. Pour les ressources compressées à bloc mipped, les dimensions sont toutes validées comme étant une puissance de deux.
- Les ressources source et de destination doivent avoir le même nombre d’échantillons et de niveaux de qualité ; à l’exception des ressources à échantillon unique, qui ne doivent avoir que le même nombre d’échantillons.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows. |
plateforme cible | Bureau |
d’en-tête | d3d10umddi.h (include D3d10umddi.h) |