Condividi tramite


Metodo ID3D11DeviceContext2::UpdateTiles (d3d11_2.h)

Aggiornamenti riquadri copiando dalla memoria dell'app alla risorsa riquadri.

Sintassi

void UpdateTiles(
  [in] ID3D11Resource                        *pDestTiledResource,
  [in] const D3D11_TILED_RESOURCE_COORDINATE *pDestTileRegionStartCoordinate,
  [in] const D3D11_TILE_REGION_SIZE          *pDestTileRegionSize,
  [in] const void                            *pSourceTileData,
  [in] UINT                                  Flags
);

Parametri

[in] pDestTiledResource

Tipo: ID3D11Resource*

Puntatore a una risorsa riquadri da aggiornare.

[in] pDestTileRegionStartCoordinate

Tipo: const D3D11_TILED_RESOURCE_COORDINATE*

Puntatore a una struttura D3D11_TILED_RESOURCE_COORDINATE che descrive le coordinate iniziali della risorsa riquadri.

[in] pDestTileRegionSize

Tipo: const D3D11_TILE_REGION_SIZE*

Puntatore a una struttura D3D11_TILE_REGION_SIZE che descrive le dimensioni dell'area riquadri.

[in] pSourceTileData

Tipo: const void*

Puntatore alla memoria contenente i dati del riquadro di origine usati da UpdateTiles per aggiornare la risorsa riquadri.

[in] Flags

Tipo: UINT

Combinazione di valori tipizzati D3D11_TILE_COPY_FLAG combinati usando un'operazione OR bit per bit. L'unico valore valido è D3D11_TILE_COPY_NO_OVERWRITE. Gli altri valori non sono significativi qui, anche se per definizione il valore D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE è fondamentalmente ciò che UpdateTiles fa, ma le origini dalla memoria dell'app.

Valore restituito

nessuno

Osservazioni

UpdateTiles elimina le operazioni di scrittura in aree non mappate (ad eccezione delle risorse riquadri Tier_1 , dove la scrittura in aree non mappate non è valida).

Se un'operazione di copia comporta la scrittura nella stessa posizione di memoria più volte perché più posizioni nella risorsa di destinazione vengono mappate alla stessa memoria del riquadro, le operazioni di scrittura risultanti nei riquadri a più mappe non sono deterministiche e non ripetibili; ovvero, l'accesso alla memoria del riquadro avviene in qualsiasi ordine che l'hardware si verifichi per eseguire l'operazione di copia.

I riquadri coinvolti nell'operazione di copia non possono includere riquadri contenenti mipmap compressi o risultati dell'operazione di copia non sono definiti. Per trasferire i dati da e verso mipmap che i pacchetti hardware vengono inseriti in un riquadro, è necessario usare la copia standard (ovvero non specifica del riquadro) copia e aggiornamento api (ad esempio ID3D11DeviceContext1::CopySubresourceRegion1 e ID3D11DeviceContext1::UpdateSubresource1) o ID3D11DeviceContext::GenerateMips per l'intera catena mipmap.

Il layout di memoria dei dati sul lato origine dell'operazione di copia è lineare in memoria entro 64 KB riquadri, che l'hardware e il driver swizzle e deswizzle per riquadro in base alle esigenze quando si trasferiscono a e da una risorsa riquadri. Per le superfici antialiasing multisample (MSAA), l'hardware e il driver attraversano gli esempi di ogni pixel nell'ordine di indice di esempio prima di passare al pixel successivo. Per i riquadri parzialmente riempiti sul lato destro (per una superficie che ha una larghezza non più di larghezza del riquadro in pixel), il passo e lo stride per spostare una riga è la dimensione completa in byte dei pixel di numero che si adattano nel riquadro se il riquadro era pieno. Quindi, può esserci uno spazio tra ogni riga di pixel in memoria. I mipmap che sono più piccoli di un riquadro non vengono compressi nel layout lineare, che potrebbero sembrare uno spreco di spazio di memoria, ma come accennato non è possibile usare ID3D11DeviceContext2::CopyTiles o UpdateTiles per copiare in mipmap che i pacchetti hardware vengono insieme. È sufficiente usare API di copia e aggiornamento generiche (ad esempio ID3D11DeviceContext1::CopySubresourceRegion1 e ID3D11DeviceContext1::UpdateSubresource1) per copiare singolarmente piccole mipmap. Anche se nel caso di un'API di copia generica (ad esempio ID3D11DeviceContext1::CopySubresourceRegion1), la memoria lineare deve essere la stessa dimensione della risorsa riquadri; ID3D11DeviceContext1::CopySubresourceRegion1 non può copiare da una risorsa buffer a una trama2D per esempio.

Per altre informazioni sulle risorse riquadri, vedere Risorse riquadri.

Requisiti

   
Client minimo supportato Windows 8.1 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 R2 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione d3d11_2.h
Libreria D3D11.lib

Vedi anche

ID3D11DeviceContext2