Método ID3D11DeviceContext2::CopyTiles (d3d11_2.h)

Copia iconos del búfer en un recurso en mosaico o viceversa.

Sintaxis

void CopyTiles(
  [in] ID3D11Resource                        *pTiledResource,
  [in] const D3D11_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  [in] const D3D11_TILE_REGION_SIZE          *pTileRegionSize,
  [in] ID3D11Buffer                          *pBuffer,
  [in] UINT64                                BufferStartOffsetInBytes,
  [in] UINT                                  Flags
);

Parámetros

[in] pTiledResource

Tipo: ID3D11Resource*

Puntero a un recurso en mosaico.

[in] pTileRegionStartCoordinate

Tipo: const D3D11_TILED_RESOURCE_COORDINATE*

Puntero a una estructura de D3D11_TILED_RESOURCE_COORDINATE que describe las coordenadas iniciales del recurso en mosaico.

[in] pTileRegionSize

Tipo: const D3D11_TILE_REGION_SIZE*

Puntero a una estructura de D3D11_TILE_REGION_SIZE que describe el tamaño de la región en mosaico.

[in] pBuffer

Tipo: ID3D11Buffer*

Puntero a un búfer ID3D11Buffer que representa un búfer predeterminado, dinámico o provisional.

[in] BufferStartOffsetInBytes

Tipo: UINT64

Desplazamiento en bytes en el búfer en pBuffer para iniciar la operación.

[in] Flags

Tipo: UINT

Combinación de valores con tipo D3D11_TILE_COPY_FLAG que se combinan mediante una operación OR bit a bit e identifica cómo copiar iconos.

Valor devuelto

None

Observaciones

CopyTiles quita las operaciones de escritura en áreas no asignadas y controla las operaciones de lectura de áreas no asignadas (excepto en Tier_1 recursos en mosaico, donde la lectura y escritura de áreas no asignadas no son válidas).

Si una operación de copia implica escribir en la misma ubicación de memoria varias veces porque varias ubicaciones del recurso de destino se asignan a la misma memoria de mosaico, las operaciones de escritura resultantes en mosaicos multiasignados son no deterministas y no repetibles; es decir, los accesos a la memoria del icono se producen en cualquier orden en que el hardware se ejecute la operación de copia.

Los iconos implicados en la operación de copia no pueden incluir iconos que contengan mapas mip empaquetados o los resultados de la operación de copia no están definidos. Para transferir datos hacia y desde mapas mip que el hardware empaqueta en los iconos uno o más que constituyen los mips empaquetados, Debe usar las API de copia y actualización estándar (es decir, no específicas del icono) (como ID3D11DeviceContext1::CopySubresourceRegion1 e ID3D11DeviceContext1::UpdateSubresource1) o ID3D11DeviceContext::GenerateMips para toda la cadena mipmap.

El diseño de memoria de los iconos del lado del recurso de búfer no en mosaico de la operación de copia es lineal en memoria en mosaicos de 64 KB, que el hardware y el controlador giran y deswizzle por icono según corresponda cuando se transfieren a y desde un recurso en mosaico. Para las superficies de suavizado multimuestra (MSAA), el hardware y el controlador atraviesan las muestras de cada píxel en orden de índice de muestra antes de pasar al siguiente píxel. En el caso de los iconos que se rellenan parcialmente en el lado derecho (para una superficie que tiene un ancho no múltiplo de ancho de mosaico en píxeles), el tono y el paso para bajar una fila es el tamaño completo en bytes del número de píxeles que caben en el icono si el icono estaba lleno. Por lo tanto, puede haber un espacio entre cada fila de píxeles en memoria. Los mapas Mip que son más pequeños que un icono no se empaquetan juntos en el diseño lineal, lo que podría parecer un desperdicio de espacio de memoria, pero como se mencionó, no puede usar CopyTiles o ID3D11DeviceContext2::UpdateTiles para copiar en mapas mip que el hardware empaqueta juntos. Solo puede usar API genéricas de copia y actualización (como ID3D11DeviceContext1::CopySubresourceRegion1 e ID3D11DeviceContext1::UpdateSubresource1) para copiar mapas mip pequeños individualmente. Aunque en el caso de una API de copia genérica (como ID3D11DeviceContext1::CopySubresourceRegion1), la memoria lineal debe ser la misma dimensión que el recurso en mosaico; ID3D11DeviceContext1::CopySubresourceRegion1 no se puede copiar desde un recurso de búfer a texture2D por ejemplo.

Para obtener más información sobre los recursos en mosaico, consulte Recursos en mosaico.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.1 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2012 R2 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado d3d11_2.h
Library D3D11.lib

Consulte también

ID3D11DeviceContext2