Метод ID3D11DeviceContext2::UpdateTiles (d3d11_2.h)
Обновления плитки путем копирования из памяти приложения в ресурс с плиткой.
Синтаксис
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
);
Параметры
[in] pDestTiledResource
Тип: ID3D11Resource*
Указатель на обновляемую плитку ресурса.
[in] pDestTileRegionStartCoordinate
Тип: const D3D11_TILED_RESOURCE_COORDINATE*
Указатель на структуру D3D11_TILED_RESOURCE_COORDINATE , описывающую начальные координаты мозаичного ресурса.
[in] pDestTileRegionSize
Тип: const D3D11_TILE_REGION_SIZE*
Указатель на структуру D3D11_TILE_REGION_SIZE , описывающую размер мозаичной области.
[in] pSourceTileData
Тип: const void*
Указатель на память, содержащую исходные данные плитки, которые UpdateTiles использует для обновления ресурса с плиткой.
[in] Flags
Тип: UINT
Сочетание D3D11_TILE_COPY_FLAG типизированных значений, объединенных с помощью побитовой операции ИЛИ. Единственное допустимое значение — D3D11_TILE_COPY_NO_OVERWRITE. Другие значения здесь не имеют смысла, хотя по определению значение D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE в основном то, что делает UpdateTiles , но источники из памяти приложения.
Возвращаемое значение
None
Remarks
UpdateTiles удаляет операции записи в несопоставленные области (за исключением Tier_1 фрагментированных ресурсов, где запись в несопоставленные области недопустима).
Если операция копирования включает запись в одно и то же расположение памяти несколько раз, так как несколько расположений в целевом ресурсе сопоставляются с одной и той же памятью плитки, результирующая операция записи в многосоставные плитки не детерминирована и не воспроизводима; то есть доступ к памяти плитки происходит в любом порядке, в каком оборудование выполняет операцию копирования.
Плитки, участвующие в операции копирования, не могут содержать плитки, содержащие упакованные MIP-карты, или результаты операции копирования не определены. Для передачи данных в MIP-карты и из них, которые оборудование упаковывает в одну плитку, необходимо использовать стандартные API копирования и обновления (например , ID3D11DeviceContext1::CopySubresourceRegion1 и ID3D11DeviceContext1::UpdateSubresource1) или ID3D11DeviceContext::GenerateMips для всей цепочки MIP-карт.
Структура памяти данных на стороне источника операции копирования является линейной в памяти в пределах 64 КБ плиток, которые оборудование и драйвер преобразовывают и деwizzle на плитку соответствующим образом при передаче в ресурс плитки и из нее. Для поверхностей с сглаживания с несколькими выборками (MSAA) оборудование и драйвер просматривают выборки каждого пикселя в порядке выборки по индексу выборки, прежде чем переходить к следующему пикселю. Для плиток, частично заполненных с правой стороны (для поверхности с шириной, которая не кратна ширине плитки в пикселях), шаг и шаг для перемещения вниз по строке — это полный размер в байтах числа пикселей, которые поместятся по всей плитке, если плитка заполнена. Таким образом, между каждой строкой пикселей в памяти может быть разрыв. MIP-карты, которые меньше плитки, не упаковываются вместе в линейном макете, что может показаться пустой тратой памяти, но, как уже упоминалось, вы не можете использовать ID3D11DeviceContext2::CopyTiles или 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 |