Partager via


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

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

Syntaxe

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

Paramètres

[in] MapType

Type : D3D10_MAP

Indicateur qui spécifie les autorisations du processeur pour la lecture et l’écriture d’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é (voir D3D10_MAP_FLAG). Cet indicateur est facultatif.

[out] ppData

Type : void**

Pointeur vers les données de ressource de mémoire tampon.

Valeur retournée

Type : HRESULT

Si cette fonction réussit, elle retourne S_OK. La liste suivante contient certaines des raisons pour lesquelles Map peut échouer :

  • Si MapFlags spécifie D3D10_MAP_FLAG_DO_NOT_WAIT et que le GPU n’est pas encore terminé avec la ressource, ID3D10Buffer::Map retourne DXGI_ERROR_WAS_STILL_DRAWING.
  • ID3D10Buffer::Map retourne DXGI_ERROR_DEVICE_REMOVED si MapType inclut des indicateurs qui autorisent la lecture et que le périphérique matériel (autrement dit, le carte vidéo) a été supprimé.
Pour plus d’informations sur les valeurs de retour précédentes, consultez DXGI_ERROR.

Remarques

Pour que le processeur écrive le contenu d’une ressource, la ressource doit être créée avec l’indicateur d’utilisation dynamique, D3D10_USAGE_DYNAMIC. Pour lire et écrire ce contenu, la ressource doit être créée avec l’indicateur d’utilisation intermédiaire, D3D10_USAGE_STAGING. (Pour plus d’informations sur ces indicateurs, consultez D3D10_USAGE.) ID3D10Buffer::Map récupère un pointeur vers les données de ressource. Pour une discussion sur la façon d’accéder efficacement aux ressources, consultez Copie et accès aux données de ressources (Direct3D 10).

Appelez ID3D10Buffer::Unmap pour indiquer que l’application a terminé d’accéder à la ressource.

ID3D10Buffer::Map a d’autres restrictions. Par exemple :

  • La même mémoire tampon ne peut pas être mappée plusieurs fois ; en d’autres termes, n’appelez pas ID3D10Buffer::Map sur une mémoire tampon déjà mappée.
  • Toute mémoire tampon liée au pipeline doit être décochée avant qu’une opération de rendu ( c’est-à-dire ID3D10Device::D raw) puisse être exécutée.
Différences entre Direct3D 9 et Direct3D 10 :

ID3D10Buffer::Map dans Direct3D 10 est analogue à la ressource Lock in Direct3D 9.

Configuration requise

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

Voir aussi

ID3D10Buffer Interface