Metodo ID3D10Buffer::Map (d3d10.h)
Ottenere un puntatore ai dati contenuti nella risorsa e negare l'accesso GPU alla risorsa.
Sintassi
HRESULT Map(
[in] D3D10_MAP MapType,
[in] UINT MapFlags,
[out] void **ppData
);
Parametri
[in] MapType
Tipo: D3D10_MAP
Flag che specifica le autorizzazioni della CPU per la lettura e la scrittura di una risorsa. Per i valori possibili, vedere D3D10_MAP.
[in] MapFlags
Tipo: UINT
Flag che specifica le operazioni che la CPU deve eseguire quando la GPU è occupata (vedere D3D10_MAP_FLAG). Questo flag è facoltativo.
[out] ppData
Tipo: void**
Puntatore ai dati della risorsa buffer.
Valore restituito
Tipo: HRESULT
Se questa funzione ha esito positivo, restituisce S_OK. L'elenco seguente contiene alcuni dei motivi per cui Map può avere esito negativo:
- Se MapFlags specifica D3D10_MAP_FLAG_DO_NOT_WAIT e la GPU non è ancora terminata con la risorsa, ID3D10Buffer::Map restituisce DXGI_ERROR_WAS_STILL_DRAWING.
- ID3D10Buffer::Map restituisce DXGI_ERROR_DEVICE_REMOVED se MapType include flag che consentono la lettura e il dispositivo hardware (ovvero la scheda video) è stato rimosso.
Commenti
Affinché la CPU scriva il contenuto di una risorsa, è necessario creare la risorsa con il flag di utilizzo dinamico D3D10_USAGE_DYNAMIC. Per leggere e scrivere tali contenuti, è necessario creare la risorsa con il flag di utilizzo di staging D3D10_USAGE_STAGING. Per altre informazioni su questi flag, vedere D3D10_USAGE. ID3D10Buffer::Map recupererà un puntatore ai dati della risorsa. Per informazioni su come accedere alle risorse in modo efficiente, vedere Copia e accesso ai dati delle risorse (Direct3D 10).
Chiamare ID3D10Buffer::Unmap per indicare che l'applicazione ha completato l'accesso alla risorsa.
ID3D10Buffer::Map presenta alcune altre restrizioni. Ad esempio:
- Non è possibile eseguire il mapping dello stesso buffer più volte; in altre parole, non chiamare ID3D10Buffer::Map su un buffer già mappato.
- È necessario annullare il mapping di qualsiasi buffer associato alla pipeline prima dell'esecuzione di qualsiasi operazione di rendering, ovvero ID3D10Device::D raw.
Differenze tra Direct3D 9 e Direct3D 10: ID3D10Buffer::Map in Direct3D 10 è analogo al blocco delle risorse in Direct3D 9. |
Requisiti
Piattaforma di destinazione | Windows |
Intestazione | d3d10.h |
Libreria | D3D10.lib |