Condividi tramite


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.
Per altre informazioni sui valori restituiti precedenti, vedere DXGI_ERROR.

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

Vedi anche

Interfaccia ID3D10Buffer