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

Lihat juga

ID3D11Device3