Condividi tramite


Metodo ID3D11DeviceContext1::UpdateSubresource1 (d3d11_1.h)

La CPU copia i dati dalla memoria a una sottorisorsa creata in memoria non mappabile.

Sintassi

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

Parametri

[in] pDstResource

Tipo: ID3D11Resource*

Puntatore alla risorsa di destinazione.

[in] DstSubresource

Tipo: UINT

Indice in base zero che identifica la sottorisorsa di destinazione. Per altri dettagli, vedere D3D11CalcSubresource .

[in, optional] pDstBox

Tipo: const D3D11_BOX*

Puntatore a una casella che definisce la parte della sottorisorsa di destinazione in cui copiare i dati della risorsa. Le coordinate sono in byte per i buffer e in texel per le trame. Se NULL, UpdateSubresource1 scrive i dati nella sottorisorsa di destinazione senza offset. Le dimensioni dell'origine devono corrispondere alla destinazione.

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, UpdateSubresource1 non esegue un'operazione di aggiornamento.

[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

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

[in] CopyFlags

Tipo: UINT

Valore tipizzato D3D11_COPY_FLAGS che specifica come eseguire l'operazione di aggiornamento. Se si specifica zero per nessuna opzione di aggiornamento, UpdateSubresource1 si comporta come ID3D11DeviceContext::UpdateSubresource. Per i driver di visualizzazione esistenti che non possono elaborare questi flag, il runtime non li usa.

Valore restituito

nessuno

Osservazioni

Se si chiama UpdateSubresource1 per aggiornare un buffer costante, passare qualsiasi area e il driver non è stato implementato per Windows 8, il runtime elimina la chiamata (ad eccezione del livello di funzionalità 9.1, 9.2 e 9.3 in cui il runtime emula il supporto). Il runtime elimina anche la chiamata se si aggiorna un buffer costante con un'area parziale il cui extent non è allineato alla granularità di 16 byte (16 byte è una costante completa). Quando il runtime elimina la chiamata, il runtime non chiama l'interfaccia DDI (Device Driver Interface) corrispondente.

Quando si registra una chiamata a UpdateSubresource con un offset pDstBox in un elenco di comandi software, l'offset in pDstBox viene applicato in modo non corretto a pSrcData quando si riproduce l'elenco di comandi. Il nuovo for-Windows 8 UpdateSubresource1 risolve questo problema. In una chiamata a UpdateSubresource1pDstBox non influisce su pSrcData.

Per informazioni sui vari tipi di risorse e sul funzionamento di UpdateSubresource1 con ogni tipo di risorsa, vedere Introduzione a una risorsa in Direct3D 11.

NotaSi applica solo al livello di funzionalità 9_x hardware Se si usa UpdateSubresource1 o ID3D11DeviceContext1::CopySubresourceRegion1 per copiare da una risorsa di staging a una risorsa predefinita, è possibile danneggiare il contenuto di destinazione. Ciò si verifica se si passa una casella di origine NULL e se la risorsa di origine ha dimensioni diverse da quelle della risorsa di destinazione o se si usano offset di destinazione, (x, y e z). In questo caso, passare sempre una casella di origine che corrisponde alle dimensioni complete della risorsa di origine.
 

Requisiti

Requisito Valore
Client minimo supportato Windows 8 e aggiornamento della piattaforma per Windows 7 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 e aggiornamento della piattaforma per Windows Server 2008 R2 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione d3d11_1.h
Libreria D3D11.lib

Vedi anche

ID3D11DeviceContext1