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 |