Condividi tramite


Metodo ID3D10Texture1D::Map (d3d10.h)

Ottenere un puntatore ai dati contenuti in una sottoresource e negare l'accesso della GPU a tale sottoresource.

Sintassi

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

Parametri

[in] Subresource

Tipo: UINT

Numero di indice della sottoresource. Per altre informazioni, vedere D3D10CalcSubresource .

[in] MapType

Tipo: D3D10_MAP

Specifica le autorizzazioni di lettura e scrittura della CPU per una risorsa. Per i valori possibili, vedere D3D10_MAP.

[in] MapFlags

Tipo: UINT

Contrassegno che specifica cosa deve fare la CPU quando la GPU è occupato. Questo flag è facoltativo.

[out] ppData

Tipo: void**

Puntatore ai dati della risorsa trama.

Valore restituito

Tipo: HRESULT

Se questa funzione ha esito positivo, restituisce S_OK. Per altre restrizioni e un elenco di valori di errore che possono essere restituiti da uno dei metodi Map , vedere Osservazioni.

Commenti

Il mapping di una trama consente alla CPU di accedere direttamente ai dati sottostanti nella sottoresource di una trama. Affinché il metodo abbia esito positivo, è necessario creare la trama con i flag appropriati (vedere D3D10_CPU_ACCESS_FLAG) e l'utilizzo specificato (vedere D3D10_USAGE) deve essere D3D10_USAGE_DYNAMIC o D3D10_USAGE_STAGING.

Gli errori comuni dei metodi Map sono indicati dai valori restituiti seguenti:

Elemento Descrizione
DXGI_ERROR_WAS_STILL_DRAWING Se MapFlags specifica D3D10_MAP_FLAG_DO_NOT_WAIT e la GPU non è ancora stata completata con la risorsa, Map restituisce DXGI_ERROR_WAS_STILL_DRAWING.
DXGI_ERROR_DEVICE_REMOVED La mappa restituisce DXGI_ERROR_DEVICE_REMOVED se MapType consente l'accesso in lettura cpu e la scheda video è stata rimossa.
 

Per altre informazioni sui valori restituiti precedenti, vedere DXGI_ERROR.

La mappa presenta le restrizioni seguenti:

  • Un'unica sottoresource non può essere mappata più volte; in altre parole, non chiamare Map in una sottoresource già mappata.
  • Qualsiasi sottoresource associato alla pipeline deve essere annullata prima dell'esecuzione di qualsiasi operazione di rendering, ovvero prima di ID3D10Device::D raw.
Le applicazioni devono eseguire il cast del puntatore pData void al tipo appropriato per accedere in modo significativo ai dati di sottoresource sottostanti. Ad esempio, il codice seguente illustra come leggere ogni texel di una sottoresource 1D. Si presuppone che la trama sia stata creata usando DXGI_FORMAT_R32G32B32A32_FLOAT e che pData sia il puntatore all'output dei dati delle risorse trama da una chiamata riuscita a questo metodo.

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
}

Differenze tra Direct3D 9 e Direct3D 10:

Il mapping 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 ID3D10Texture1D