ID3D11Device3::ReadFromSubresource method (d3d11_3.h)
Menyalin data dari tekstur D3D11_USAGE_DEFAULT yang dipetakan menggunakan ID3D11DeviceContext3::Map sambil menyediakan parameter D3D11_MAPPED_SUBRESOURCE NULL.
Sintaks
void ReadFromSubresource(
[out] void *pDstData,
[in] UINT DstRowPitch,
[in] UINT DstDepthPitch,
[in] ID3D11Resource *pSrcResource,
[in] UINT SrcSubresource,
[in, optional] const D3D11_BOX *pSrcBox
);
Parameter
[out] pDstData
Jenis: void*
Penunjuk ke data tujuan dalam memori.
[in] DstRowPitch
Jenis: UINT
Ukuran satu baris data tujuan.
[in] DstDepthPitch
Jenis: UINT
Ukuran satu iringan kedalaman data tujuan.
[in] pSrcResource
Jenis: ID3D11Resource*
Penunjuk ke sumber daya sumber (lihat ID3D11Resource).
[in] SrcSubresource
Jenis: UINT
Indeks berbasis nol, yang mengidentifikasi subsumber daya tujuan. Untuk detail selengkapnya, lihat D3D11CalcSubresource.
[in, optional] pSrcBox
Jenis: const D3D11_BOX*
Penunjuk ke kotak yang menentukan bagian sub sumber daya tujuan untuk menyalin data sumber daya. Jika NULL, data dibaca dari subsumber daya tujuan tanpa offset. Dimensi tujuan harus sesuai dengan tujuan (lihat D3D11_BOX).
Kotak kosong menghasilkan no-op. Kotak kosong jika nilai atas lebih besar dari atau sama dengan nilai bawah, atau nilai kiri lebih besar dari atau sama dengan nilai kanan, atau nilai depan lebih besar dari atau sama dengan nilai belakang. Ketika kotak kosong, metode ini tidak melakukan operasi apa pun.
Mengembalikan nilai
Tidak ada
Keterangan
Sumber daya yang disediakan harus berupa tekstur D3D11_USAGE_DEFAULT yang dipetakan untuk ditulis oleh panggilan sebelumnya ke ID3D11DeviceContext3::Map sambil memberikan parameter D3D11_MAPPED_SUBRESOURCE NULL.
API ini ditujukan untuk memanggil pada frekuensi tinggi. Penelepon dapat mengurangi memori dengan melakukan panggilan berulang yang memperbarui wilayah progresif tekstur, sekaligus memberikan buffer kecil selama setiap panggilan. Namun, paling efisien untuk menentukan wilayah yang cukup besar, karena ini memungkinkan D3D mengisi seluruh baris cache dalam tekstur sebelum kembali.
Untuk efisiensi, pastikan batas dan perataan jangkauan dalam kotak adalah ( 64 / [Byte per piksel] ) piksel secara horizontal. Batas dan perataan vertikal harus 2 baris, kecuali ketika format 1-byte-per-piksel digunakan, dalam hal ini 4 baris direkomendasikan. Irisan kedalaman tunggal per panggilan ditangani secara efisien. Disarankan tetapi tidak perlu menyediakan pointer dan langkah-langkah yang selaras dengan 128 byte.
Saat membaca dari tingkat sub mipmap, disarankan untuk menggunakan lebar dan tinggi yang lebih besar daripada yang dijelaskan di atas. Ini karena tingkat mipmap kecil sebenarnya dapat disimpan dalam blok memori yang lebih besar, dengan jumlah offsetting buram yang dapat mengganggu keselarasan ke baris cache.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | d3d11_3.h |
Pustaka | D3D11.lib |