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é.
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 |