Condividi tramite


Metodo ID3D11Device3::ReadFromSubresource (d3d11_3.h)

Copia i dati da una trama D3D11_USAGE_DEFAULT mappata usando ID3D11DeviceContext3::Map fornendo un parametro null D3D11_MAPPED_SUBRESOURCE .

Sintassi

void ReadFromSubresource(
  [out]          void            *pDstData,
  [in]           UINT            DstRowPitch,
  [in]           UINT            DstDepthPitch,
  [in]           ID3D11Resource  *pSrcResource,
  [in]           UINT            SrcSubresource,
  [in, optional] const D3D11_BOX *pSrcBox
);

Parametri

[out] pDstData

Tipo: void*

Puntatore ai dati di destinazione in memoria.

[in] DstRowPitch

Tipo: UINT

Dimensioni di una riga dei dati di destinazione.

[in] DstDepthPitch

Tipo: UINT

Dimensione di una sezione di profondità dei dati di destinazione.

[in] pSrcResource

Tipo: ID3D11Resource*

Puntatore alla risorsa di origine (vedere ID3D11Resource).

[in] SrcSubresource

Tipo: UINT

Indice in base zero, che identifica la sottorisorsa di destinazione. Per altre informazioni, vedere D3D11CalcSubresource.

[in, optional] pSrcBox

Tipo: const D3D11_BOX*

Puntatore a una casella che definisce la parte della sottorisorsa di destinazione da cui copiare i dati della risorsa. Se NULL, i dati vengono letti dalla sottorisorsa di destinazione senza offset. Le dimensioni della destinazione devono essere adatte alla destinazione (vedere D3D11_BOX).

Una casella vuota restituisce un no-op. Una casella è vuota se il valore superiore è maggiore o uguale al valore inferiore oppure il valore sinistro è maggiore o uguale al valore destro oppure il valore anteriore è maggiore o uguale al valore indietro. Quando la casella è vuota, questo metodo non esegue alcuna operazione.

Valore restituito

nessuno

Osservazioni

La risorsa fornita deve essere una trama D3D11_USAGE_DEFAULT mappata per la scrittura da una chiamata precedente a ID3D11DeviceContext3::Map fornendo un parametro null D3D11_MAPPED_SUBRESOURCE .

Questa API è destinata a chiamare ad alta frequenza. I chiamanti possono ridurre la memoria effettuando chiamate iterative che aggiornano le aree progressive della trama, fornendo un buffer ridotto durante ogni chiamata. È tuttavia più efficiente specificare aree sufficienti, perché ciò consente a D3D di riempire intere righe della cache nella trama prima di restituire.

Per garantire l'efficienza, assicurarsi che i limiti e l'allineamento degli extent all'interno della casella siano ( 64 / [byte per pixel] ) in senso orizzontale. I limiti verticali e l'allineamento devono essere 2 righe, tranne quando vengono usati formati a 1 byte per pixel, nel qual caso sono consigliate 4 righe. Le singole sezioni di profondità per chiamata vengono gestite in modo efficiente. È consigliabile ma non necessario fornire puntatori e passi che sono allineati a 128 byte.

Quando si legge da livelli sub mipmap, è consigliabile usare una larghezza e un'altezza maggiori rispetto a quanto descritto in precedenza. Ciò è dovuto al fatto che i piccoli livelli mipmap possono effettivamente essere archiviati all'interno di un blocco di memoria più grande, con una quantità opaca di offset che può interferire con l'allineamento alle righe della cache.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione d3d11_3.h
Libreria D3D11.lib

Vedi anche

ID3D11Device3