Метод ID3D11DeviceContext2::CopyTiles (d3d11_2.h)
Копирует плитки из буфера в ресурс с плитками или наоборот.
Синтаксис
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
);
Параметры
[in] pTiledResource
Тип: ID3D11Resource*
Указатель на ресурс с плиткой.
[in] pTileRegionStartCoordinate
Тип: const D3D11_TILED_RESOURCE_COORDINATE*
Указатель на структуру D3D11_TILED_RESOURCE_COORDINATE , описывающую начальные координаты мозаичного ресурса.
[in] pTileRegionSize
Тип: const D3D11_TILE_REGION_SIZE*
Указатель на D3D11_TILE_REGION_SIZE структуру, описывающую размер области плитки.
[in] pBuffer
Тип: ID3D11Buffer*
Указатель на ID3D11Buffer , представляющий буфер по умолчанию, динамический или промежуточный буфер.
[in] BufferStartOffsetInBytes
Тип: UINT64
Смещение в байтах в буфере в pBuffer для запуска операции.
[in] Flags
Тип: UINT
Сочетание D3D11_TILE_COPY_FLAG типизированных значений, которые объединяются с помощью побитовой операции OR и определяют способ копирования плиток.
Возвращаемое значение
None
Remarks
CopyTiles удаляет операции записи в несопоставленные области и обрабатывает операции чтения из несопоставленных областей (за исключением Tier_1 фрагментированных ресурсов, где чтение и запись несопоставленных областей недопустимы).
Если операция копирования включает запись в одно и то же расположение памяти несколько раз, так как несколько расположений в целевом ресурсе сопоставлены с одной и той же памятью плитки, результирующие операции записи в многосоставные плитки являются недетерминированными и не повторяемыми; то есть доступ к памяти плитки происходит в любом порядке, в каком оборудование выполняет операцию копирования.
Плитки, участвующие в операции копирования, не могут содержать плитки, содержащие упакованные MIP-карты, или результаты операции копирования не определены. Чтобы передать данные на MIP-карты, которые оборудование упаковывает в одну или несколько плиток, составляющих упакованные mips, и из них, Для всей цепочки MIP-карты необходимо использовать стандартные API копирования и обновления (например , ID3D11DeviceContext1::CopySubresourceRegion1 и ID3D11DeviceContext1::UpdateSubresource1) или ID3D11DeviceContext::GenerateMips .
Структура памяти плиток на стороне ресурса некличного буфера операции копирования является линейной в памяти в пределах 64 КБ плиток, которые оборудование и драйвер свертывают и отменяют для каждой плитки при их передаче в ресурс с плиткой и из нее. Для поверхностей с сглаживания с несколькими выборками (MSAA) оборудование и драйвер просматривают выборки каждого пикселя в порядке выборки по индексу перед переходом к следующему пикселю. Для плиток, частично заполненных с правой стороны (для поверхности, ширина которого не кратна ширине плитки в пикселях), шаг и шаг для перемещения вниз по строке — это полный размер в байтах числа пикселей, которые поместятся по всей плитке, если плитка заполнена. Таким образом, между каждой строкой пикселей в памяти может быть разрыв. MIP-карты меньше, чем плитка, не упаковываются в линейный макет, что может показаться пустой тратой памяти, но, как уже упоминалось, вы не можете использовать CopyTiles или ID3D11DeviceContext2::UpdateTiles для копирования в MIP-карты, которые упаковывает оборудование. Вы можете просто использовать универсальные API копирования и обновления (например , ID3D11DeviceContext1::CopySubresourceRegion1 и ID3D11DeviceContext1::UpdateSubresource1) для копирования небольших MIP-карт по отдельности. Хотя в случае универсального API копирования (например , ID3D11DeviceContext1::CopySubresourceRegion1) линейная память должна иметь то же измерение, что и ресурс с плитками; ID3D11DeviceContext1::CopySubresourceRegion1 не может копировать из буферного ресурса в экземпляр Texture2D.
Дополнительные сведения о ресурсах с плитками см. в разделе Плитки ресурсов.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8.1 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2012 R2 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | d3d11_2.h |
Библиотека | D3D11.lib |