PFND3D11_1DDI_RESOURCECOPYREGION fonction de rappel (d3d10umddi.h)
Copie une région de sous-ressource source vers un emplacement sur une sous-ressource de destination.
Syntaxe
PFND3D11_1DDI_RESOURCECOPYREGION Pfnd3d111DdiResourcecopyregion;
void Pfnd3d111DdiResourcecopyregion(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HRESOURCE unnamedParam2,
UINT unnamedParam3,
UINT unnamedParam4,
UINT unnamedParam5,
UINT unnamedParam6,
D3D10DDI_HRESOURCE unnamedParam7,
UINT unnamedParam8,
const D3D10_DDI_BOX *unnamedParam9,
[in] UINT CopyFlags
)
{...}
Paramètres
unnamedParam1
hDevice [in]
Handle de l’appareil d’affichage (contexte graphique).
unnamedParam2
hDstResource [in]
Handle de la ressource de destination vers laquelle effectuer la copie.
unnamedParam3
DstSubresource [in]
Index qui indique la sous-ressource de destination vers laquelle effectuer la copie.
unnamedParam4
DstX [in]
Coordonnée x de la sous-ressource de destination.
unnamedParam5
DstY [in]
Coordonnée y de la sous-ressource de destination. Pour les sous-ressources unidimensionnelles (1D), DstY est défini sur zéro.
unnamedParam6
DstZ [in]
Coordonnée z de la sous-ressource de destination. Pour les sous-ressources unidimensionnelles (1D) et bidimensionnelles (2D), DstZ est défini sur zéro.
unnamedParam7
hSrcResource [in]
Handle de la ressource source à partir de laquelle effectuer la copie.
unnamedParam8
SrcSubresource [in]
Index qui indique la sous-ressource source à partir de laquelle copier.
unnamedParam9
pSrcBox [in, facultatif]
Pointeur vers une structure de D3D10_DDI_BOX qui spécifie une zone qui correspond à la sous-ressource source ou de destination. Si pSrcBox a la valeur NULL, le pilote doit copier l’intégralité de la sous-ressource source dans la destination.
Si les membres de la structure D3D10_DDI_BOX sont tels que left>=right, top>=bottom ou front>=back, pSrcBox est considéré comme vide et ResourceCopyRegion(D3D11_1) ne doit effectuer aucune opération de copie.
[in] CopyFlags
Valeur qui spécifie les caractéristiques de l’opération de copie sous la forme d’un bit OU des valeurs du type d’énumération D3D11_1_DDI_COPY_FLAGS .
Valeur de retour
None
Remarques
Le pilote peut utiliser la fonction de rappel pfnSetErrorCb pour définir un code d’erreur.
Le runtime Microsoft Direct3D appelle la fonction ResourceCopyRegion(D3D11_1) du pilote d’affichage en mode utilisateur pour informer le pilote de copier à partir de la sous-ressource source spécifiée vers un emplacement sur la sous-ressource de destination spécifiée. Les sous-ressources source et de destination peuvent être la même sous-ressource de la même ressource. Les ressources source et de destination doivent être du même type de ressource et avoir des types de format (DXGI_FORMAT valeurs de type) qui sont convertibles les uns aux autres.
Pour les mémoires tampons, toutes les coordonnées doivent être en octets ; tandis que pour les textures, toutes les coordonnées doivent être en pixels. La zone vers laquelle pointe le paramètre pSrcBox ne doit pas s’étendre sur les bords de la sous-ressource source ou de la sous-ressource de destination. La source et la ressource de destination ne doivent pas être mappées actuellement. En outre, les indicateurs de création de ressource limitent si la ressource peut participer à l’opération de copie.
Le pilote ne doit rencontrer aucune erreur, à l’exception de D3DDDIERR_DEVICEREMOVED. Par conséquent, si le pilote réussit 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 a interférer avec le fonctionnement de (ce qui ne doit généralement pas se produire), le pilote peut retourner D3DDDIERR_DEVICEREMOVED.
Le pilote peut implémenter une fonction ResourceCopyRegion(D3D11_1) qui peut contenir une instruction switch pour traiter la copie et la conversion. Autrement dit, le pilote peut implémenter un ResourceCopyRegion(D3D11_1) et définir le membre pfnResourceConvertRegion de la structure D3D11_1DDI_DEVICEFUNCS pour qu’il pointe vers ResourceCopyRegion(D3D11_1) avec le membre pfnResourceCopyRegion de D3D11_1DDI_DEVICEFUNCS. Toutefois, pour améliorer les performances, le pilote peut implémenter des fonctions ResourceCopyRegion(D3D11_1) et ResourceConvertRegion(D3D11_1) distinctes .
Les sections suivantes répertorient les conditions de copie et de conversion :
Copie
Pour la copie, ResourceCopyRegion(D3D11_1) garantit que les ressources source et de destination ont été créées via la fonction CreateResource(D3D11) 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 Usage de la structure D3D11DDIARG_CREATERESOURCE .
- Si la ressource source ou de destination a le D3D10_DDI_BIND_DEPTH_STENCIL bit défini dans le membre BindFlags de l’D3D10DDIARG_CREATERESOURCE ou s’il s’agit d’une ressource multi-échantillonnées, ResourceCopyRegion(D3D11_1) vérifie que le paramètre pSrcBox est NULL, tandis que les paramètres DstX, DstY et DstZ sont 0.
- Les index de sous-ressource sont dans la plage.
- Les restrictions d’alignement s’appliquent aux coordonnées.
- Les ressources source et de destination ne font pas partie de la même sous-ressource.
- Chaque format de ressource source et de destination spécifié dans le membre Format de D3D11DDIARG_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 les mêmes niveaux de qualité ; sauf pour les ressources à échantillon unique, qui ne doivent avoir que le même nombre d’exemples.
Conversion
Pour la conversion, ResourceCopyRegion(D3D11_1) garantit que les ressources source et de destination ont été créées via la fonction CreateResource(D3D11) 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 Usage de la structure D3D11DDIARG_CREATERESOURCE .
- Si la ressource source ou de destination a le bit D3D10_DDI_BIND_DEPTH_STENCIL défini dans le membre BindFlags de D3D11DDIARG_CREATERESOURCE ou s’il s’agit d’une ressource à échantillon multiple, ResourceCopyRegion(D3D11_1) vérifie que le paramètre pSrcBox est NULL, tandis que les paramètres DstX, DstY et DstZ sont 0.
- Les index de sous-ressource sont dans la plage.
- Les restrictions d’alignement s’appliquent aux coordonnées.
- Les ressources source et de destination ne font pas partie de la même sous-ressource.
- Chaque format de ressource source et de destination spécifié dans le membre Format de D3D11DDIARG_CREATERESOURCE se trouve dans le même groupe sans type.
- Chaque format de ressource source et de destination spécifié dans le membre Format de D3D11DDIARG_CREATERESOURCE prend en charge l’opération de conversion appropriée.
- Les ressources source et de destination doivent avoir le même nombre d’échantillons et les mêmes niveaux de qualité ; sauf pour les ressources à échantillon unique, qui ne doivent avoir que le même nombre d’exemples.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 |
Serveur minimal pris en charge | Windows Server 2012 |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | d3d10umddi.h (include D3d10umddi.h) |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour