Bagikan melalui


ID3D10Buffer::Metode peta (d3d10.h)

Dapatkan penunjuk ke data yang terkandung dalam sumber daya dan tolak akses GPU ke sumber daya.

Sintaks

HRESULT Map(
  [in]  D3D10_MAP MapType,
  [in]  UINT      MapFlags,
  [out] void      **ppData
);

Parameter

[in] MapType

Jenis: D3D10_MAP

Bendera yang menentukan izin CPU untuk membaca dan menulis sumber daya. Untuk nilai yang mungkin, lihat D3D10_MAP.

[in] MapFlags

Jenis: UINT

Bendera yang menentukan apa yang harus dilakukan CPU ketika GPU sibuk (lihat D3D10_MAP_FLAG). Bendera ini bersifat opsional.

[out] ppData

Jenis: batal**

Arahkan ke data sumber daya buffer.

Mengembalikan nilai

Jenis: HRESULT

Jika fungsi ini berhasil, fungsi akan mengembalikan S_OK. Daftar berikut ini berisi beberapa alasan peta bisa gagal:

  • Jika MapFlags menentukan D3D10_MAP_FLAG_DO_NOT_WAIT dan GPU belum selesai dengan sumber daya, ID3D10Buffer::Map mengembalikan DXGI_ERROR_WAS_STILL_DRAWING.
  • ID3D10Buffer::Map mengembalikan DXGI_ERROR_DEVICE_REMOVED jika MapType menyertakan bendera apa pun yang mengizinkan pembacaan dan perangkat keras (yaitu, kartu video) telah dihapus.
Untuk informasi selengkapnya tentang nilai pengembalian sebelumnya, lihat DXGI_ERROR.

Keterangan

Agar CPU menulis konten sumber daya, sumber daya harus dibuat dengan bendera penggunaan dinamis, D3D10_USAGE_DYNAMIC. Untuk membaca dan menulis konten tersebut, sumber daya harus dibuat dengan bendera penggunaan penahapan, D3D10_USAGE_STAGING. (Untuk informasi selengkapnya tentang bendera ini, lihat D3D10_USAGE.) ID3D10Buffer::Map akan mengambil pointer ke data sumber daya. Untuk diskusi tentang cara mengakses sumber daya secara efisien, lihat Menyalin dan Mengakses Data Sumber Daya (Direct3D 10).

Panggil ID3D10Buffer::Unmap untuk menandakan bahwa aplikasi telah selesai mengakses sumber daya.

ID3D10Buffer::Map memiliki beberapa batasan lainnya. Contohnya:

  • Buffer yang sama tidak dapat dipetakan beberapa kali; dengan kata lain, jangan panggil ID3D10Buffer::Map pada buffer yang sudah dipetakan.
  • Setiap buffer yang terikat ke alur harus tidak dipetakan sebelum operasi penyajian apa pun (yaitu, ID3D10Device::D raw) dapat dijalankan.
Perbedaan antara Direct3D 9 dan Direct3D 10:

ID3D10Buffer::Map di Direct3D 10 dianalogikan dengan Kunci sumber daya di Direct3D 9.

Persyaratan

   
Target Platform Windows
Header d3d10.h
Pustaka D3D10.lib

Lihat juga

Antarmuka ID3D10Buffer