Metode IWICDdsFrameDecode::CopyBlocks (wincodec.h)
Meminta data piksel karena disimpan secara asli dalam file DDS.
Sintaks
HRESULT CopyBlocks(
[in] const WICRect *prcBoundsInBlocks,
[in] UINT cbStride,
[in] UINT cbBufferSize,
[out] BYTE *pbBuffer
);
Parameter
[in] prcBoundsInBlocks
Jenis: const WICRect*
Persegi panjang untuk disalin dari sumber. Nilai NULL menentukan seluruh tekstur.
Jika tekstur menggunakan DXGI_FORMAT terkompresi blok, semua nilai persegi panjang dinyatakan dalam jumlah blok, bukan piksel.
[in] cbStride
Jenis: UINT
Langkah, dalam byte, dari buffer tujuan. Ini menunjukkan jumlah byte dari penunjuk buffer ke baris data berikutnya. Jika tekstur menggunakan DXGI_FORMAT terkompresi blok, "baris data" didefinisikan sebagai baris blok yang berisi beberapa pemindaian piksel.
[in] cbBufferSize
Jenis: UINT
Ukuran, dalam byte, dari buffer tujuan.
[out] pbBuffer
Jenis: BYTE*
Penunjuk ke buffer tujuan.
Nilai kembali
Jenis: HRESULT
Jika metode ini berhasil, metode akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.
Keterangan
Jika tekstur tidak menggunakan DXGI_FORMAT yang dikompresi blok, metode ini bertindak mirip dengan IWICBitmapSource::CopyPixels. Namun, ia tidak melakukan konversi format piksel apa pun, dan sebaliknya menghasilkan data mentah dari file DDS.
Jika tekstur menggunakan DXGI_FORMAT terkompresi blok, metode ini menyalin data blok langsung ke buffer yang disediakan. Dalam hal ini, parameter prcBoundsInBlocks didefinisikan dalam blok, bukan piksel. Untuk menentukan apakah ini masalahnya, panggil GetFormatInfo dan baca anggota DxgiFormat dari struktur WICDdsFormatInfo yang dikembalikan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8.1 [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2012 R2 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | wincodec.h |
Pustaka | Windowscodecs.lib |
DLL | Windowscodecs.dll |