Partager via


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.

Remarque Les sections suivantes s’appliquent uniquement à Microsoft Direct3D version 10.1 et ultérieure (autrement dit, Windows Vista avec Service Pack 1 (SP1) et versions ultérieures, et Windows Server 2008 et versions ultérieures).
 
Le pilote peut implémenter une fonction ResourceCopy qui peut contenir un commutateur instruction pour traiter la copie et la conversion. Autrement dit, le pilote peut implémenter un ResourceCopy et définir le membre pfnResourceConvert de la structure de D3D10_1DDI_DEVICEFUNCS pour pointer vers ResourceCopy, ainsi que le membre pfnResourceCopy de D3D10_1DDI_DEVICEFUNCS. Toutefois, pour améliorer les performances, le pilote peut implémenter des fonctions ResourceCopy distinctes et ResourceConvert.

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.
ResourceCopy ne garantit pas qu’aucune sous-ressource n’est actuellement mappée.

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.
ResourceCopy ne garantit pas qu’aucune sous-ressource n’est actuellement mappée.

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)

Voir aussi

CreateResource(D3D10)

D3D10DDIARG_CREATERESOURCE

D3D10DDI_DEVICEFUNCS

D3D10_1DDI_DEVICEFUNCS

pfnSetErrorCb