ID3D10Texture1D::Map, méthode (d3d10.h)

Obtenez un pointeur vers les données contenues dans une sous-ressource et refusez l’accès GPU à cette sous-ressource.

Syntaxe

HRESULT Map(
  [in]  UINT      Subresource,
  [in]  D3D10_MAP MapType,
  [in]  UINT      MapFlags,
  [out] void      **ppData
);

Paramètres

[in] Subresource

Type : UINT

Numéro d’index de la sous-ressource. Pour plus d’informations, consultez D3D10CalcSubresource .

[in] MapType

Type : D3D10_MAP

Spécifie les autorisations de lecture et d’écriture du processeur pour une ressource. Pour connaître les valeurs possibles, consultez D3D10_MAP.

[in] MapFlags

Type : UINT

Indicateur qui spécifie ce que le processeur doit faire lorsque le GPU est occupé. Cet indicateur est facultatif.

[out] ppData

Type : void**

Pointeur vers les données de ressource de texture.

Valeur retournée

Type : HRESULT

Si cette fonction réussit, elle retourne S_OK. Pour obtenir d’autres restrictions et obtenir la liste des valeurs d’erreur qui peuvent être retournées par l’une des méthodes Map , consultez Remarques.

Remarques

Le mappage d’une texture permet au processeur d’accéder directement aux données sous-jacentes dans la sous-ressource d’une texture. Pour que la méthode réussisse, la texture en cours de mappage doit être créée avec les indicateurs appropriés (voir D3D10_CPU_ACCESS_FLAG), et son utilisation spécifiée (voir D3D10_USAGE) doit être D3D10_USAGE_DYNAMIC ou D3D10_USAGE_STAGING.

Les échecs courants des méthodes Map sont indiqués par les valeurs de retour suivantes :

Élément Description
DXGI_ERROR_WAS_STILL_DRAWING Si MapFlags spécifie D3D10_MAP_FLAG_DO_NOT_WAIT et que le GPU n’est pas encore terminé avec la ressource, Map retourne DXGI_ERROR_WAS_STILL_DRAWING.
DXGI_ERROR_DEVICE_REMOVED Map retourne DXGI_ERROR_DEVICE_REMOVED si MapType autorise l’accès en lecture au processeur et que la carte vidéo a été supprimée.
 

Pour plus d’informations sur les valeurs de retour précédentes, consultez DXGI_ERROR.

Map présente les restrictions suivantes :

  • Une sous-ressource unique ne peut pas être mappée plusieurs fois ; en d’autres termes, n’appelez pas Map sur une sous-ressource déjà mappée.
  • Toute sous-ressource liée au pipeline doit être démapped avant qu’une opération de rendu (c’est-à-dire avant ID3D10Device::D raw) puisse être exécutée.
Les applications doivent convertir le pointeur void pData vers le type approprié pour accéder de manière significative aux données de sous-ressource sous-jacentes. Par exemple, le code suivant montre comment lire chaque texel d’une sous-ressource 1D. Il est supposé que la texture a été créée à l’aide de DXGI_FORMAT_R32G32B32A32_FLOAT et que pData est le pointeur vers la sortie des données de ressource de texture d’un appel réussi à cette méthode.

FLOAT* pTexels = (FLOAT*)pData;
for( UINT col = 0; col < width; col++ )
{
  pTexels[col*4 + 0]; // Alpha
  pTexels[col*4 + 1]; // Blue
  pTexels[col*4 + 2]; // Green
  pTexels[col*4 + 3]; // Red
}

Différences entre Direct3D 9 et Direct3D 10 :

La carte dans Direct3D 10 est analogue au verrouillage de ressource dans Direct3D 9.

Configuration requise

   
Plateforme cible Windows
En-tête d3d10.h
Bibliothèque D3D10.lib

Voir aussi

ID3D10Texture1D Interface