ID3D11Device3 ::WriteToSubresource, méthode (d3d11_3.h)
Copie des données dans une texture D3D11_USAGE_DEFAULT qui a été mappée à l’aide de ID3D11DeviceContext3 ::Map tout en fournissant un paramètre NULL D3D11_MAPPED_SUBRESOURCE .
Syntaxe
void WriteToSubresource(
[in] ID3D11Resource *pDstResource,
[in] UINT DstSubresource,
[in, optional] const D3D11_BOX *pDstBox,
[in] const void *pSrcData,
[in] UINT SrcRowPitch,
[in] UINT SrcDepthPitch
);
Paramètres
[in] pDstResource
Type : ID3D11Resource*
Pointeur vers la ressource de destination ( id3D11Resource).
[in] DstSubresource
Type : UINT
Index de base zéro qui identifie la sous-ressource de destination. Pour plus d’informations, consultez D3D11CalcSubresource.
[in, optional] pDstBox
Type : const D3D11_BOX*
Pointeur vers une zone qui définit la partie de la sous-ressource de destination dans laquelle copier les données de ressource. Si la valeur est NULL, les données sont écrites dans la sous-ressource de destination sans décalage. Les dimensions de la source doivent correspondre à la destination (voir D3D11_BOX).
Une zone vide génère une opération de non-opération. Une zone est vide si la valeur supérieure est supérieure ou égale à la valeur inférieure, ou si la valeur de gauche est supérieure ou égale à la valeur de droite, ou si la valeur avant est supérieure ou égale à la valeur arrière. Lorsque la zone est vide, cette méthode n’effectue aucune opération.
[in] pSrcData
Type : const void*
Pointeur vers les données sources en mémoire.
[in] SrcRowPitch
Type : UINT
Taille d’une ligne des données sources.
[in] SrcDepthPitch
Type : UINT
Taille d’une tranche de profondeur des données sources.
Valeur de retour
None
Remarques
La ressource fournie doit être une texture D3D11_USAGE_DEFAULT qui a été mappée pour l’écriture par un appel précédent à ID3D11DeviceContext3 ::Map tout en fournissant un paramètre NULL D3D11_MAPPED_SUBRESOURCE .
Cette API est destinée aux appels à haute fréquence. Les appelants peuvent réduire la mémoire en effectuant des appels itératifs qui mettent à jour les régions progressives de la texture, tout en fournissant une petite mémoire tampon pendant chaque appel. Toutefois, il est plus efficace de spécifier des régions suffisamment grandes, car cela permet à D3D de remplir des lignes de cache entières dans la texture avant de retourner.
Pour plus d’efficacité, assurez-vous que les limites et l’alignement des étendues dans la zone sont ( 64 / [octets par pixel] ) pixels horizontalement. Les limites verticales et l’alignement doivent être de 2 lignes, sauf lorsque des formats de 1 octet par pixel sont utilisés, auquel cas 4 lignes sont recommandées. Les tranches de profondeur uniques par appel sont gérées efficacement. Il est recommandé, mais pas nécessaire, de fournir des pointeurs et des foulées alignés sur 128 octets.
Lors de l’écriture aux niveaux sub-mipmap, il est recommandé d’utiliser des largeurs et des hauteurs plus grandes que celles décrites ci-dessus. Cela est dû au fait que de petits niveaux de mipmap peuvent en fait être stockés dans un bloc de mémoire plus grand, avec une quantité opaque de compensation qui peut interférer avec l’alignement sur les lignes de cache.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | d3d11_3.h |
Bibliothèque | D3D11.lib |