Condividi tramite


Metodo ID3D11Device3::WriteToSubresource (d3d11_3.h)

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

Sintassi

void WriteToSubresource(
  [in]           ID3D11Resource  *pDstResource,
  [in]           UINT            DstSubresource,
  [in, optional] const D3D11_BOX *pDstBox,
  [in]           const void      *pSrcData,
  [in]           UINT            SrcRowPitch,
  [in]           UINT            SrcDepthPitch
);

Parametri

[in] pDstResource

Tipo: ID3D11Resource*

Puntatore alla risorsa di destinazione ( ID3D11Resource).

[in] DstSubresource

Tipo: UINT

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

[in, optional] pDstBox

Tipo: const D3D11_BOX*

Puntatore a una casella che definisce la parte della sottoresource di destinazione in cui copiare i dati della risorsa. Se NULL, i dati vengono scritti nella sottoresource di destinazione senza offset. Le dimensioni dell'origine devono adattarsi alla destinazione (vedere D3D11_BOX).

Una casella vuota genera 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 posteriore. Quando la casella è vuota, questo metodo non esegue alcuna operazione.

[in] pSrcData

Tipo: const void*

Puntatore ai dati di origine in memoria.

[in] SrcRowPitch

Tipo: UINT

Dimensione di una riga dei dati di origine.

[in] SrcDepthPitch

Tipo: UINT

Dimensioni di una sezione approfondita dei dati di origine.

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 alla chiamata ad alta frequenza. I chiamanti possono ridurre la memoria eseguendo chiamate iterative che aggiornano le aree progressive della trama, fornendo un buffer ridotto durante ogni chiamata. È più efficiente specificare aree sufficienti, anche se questo consente a D3D di riempire tutte le righe della cache nella trama prima di restituire.

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

Quando si scrive in livelli di mipmap secondari, è consigliabile usare larghezza e altezze maggiori rispetto a quelle descritte in precedenza. Questo perché i piccoli livelli di 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