Метод IWICDdsFrameDecode::CopyBlocks (wincodec.h)
Запрашивает пиксельные данные, так как они изначально хранятся в файле DDS.
Синтаксис
HRESULT CopyBlocks(
[in] const WICRect *prcBoundsInBlocks,
[in] UINT cbStride,
[in] UINT cbBufferSize,
[out] BYTE *pbBuffer
);
Параметры
[in] prcBoundsInBlocks
Тип: const WICRect*
Прямоугольник для копирования из источника. Значение NULL указывает всю текстуру.
Если текстура использует блочное сжатие DXGI_FORMAT, все значения прямоугольника выражаются в количестве блоков, а не в пикселях.
[in] cbStride
Тип: UINT
Шаг в байтах целевого буфера. Это число байтов от указателя буфера к следующей строке данных. Если текстура использует сжатый блок DXGI_FORMAT, "строка данных" определяется как строка блоков, содержащая несколько линий сканирования пикселей.
[in] cbBufferSize
Тип: UINT
Размер целевого буфера в байтах.
[out] pbBuffer
Тип: BYTE*
Указатель на буфер назначения.
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Если текстура не использует блочное сжатие DXGI_FORMAT, этот метод ведет себя аналогично IWICBitmapSource::CopyPixels. Однако он не выполняет преобразование формата пикселей и вместо этого создает необработанные данные из файла DDS.
Если текстура использует блочное сжатие DXGI_FORMAT, этот метод копирует блочные данные непосредственно в предоставленный буфер. В этом случае параметр prcBoundsInBlocks определяется в блоках, а не в пикселях. Чтобы определить, так ли это, вызовите Метод GetFormatInfo и считайте элемент DxgiFormat возвращенной структуры WICDdsFormatInfo .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8.1 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2012 R2 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | wincodec.h |
Библиотека | Windowscodecs.lib |
DLL | Windowscodecs.dll |