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