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 并读取返回的 WICDdsFormatInfo 结构的 DxgiFormat 成员。

要求

要求
最低受支持的客户端 Windows 8.1 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 wincodec.h
Library Windowscodecs.lib
DLL Windowscodecs.dll

另请参阅

IWICBitmapSource::CopyPixels

IWICDdsFrameDecode