Bagikan melalui


enumerasi D3D10_MAP (d3d10.h)

Mengidentifikasi sumber daya yang akan diakses untuk dibaca dan ditulis oleh CPU. Aplikasi dapat menggabungkan satu atau beberapa bendera ini.

Sintaks

typedef enum D3D10_MAP {
  D3D10_MAP_READ = 1,
  D3D10_MAP_WRITE = 2,
  D3D10_MAP_READ_WRITE = 3,
  D3D10_MAP_WRITE_DISCARD = 4,
  D3D10_MAP_WRITE_NO_OVERWRITE = 5
} ;

Konstanta

 
D3D10_MAP_READ
Nilai: 1
Sumber daya dipetakan untuk dibaca. Sumber daya harus dibuat dengan akses baca (lihat D3D10_CPU_ACCESS_READ).
D3D10_MAP_WRITE
Nilai: 2
Sumber daya dipetakan untuk menulis. Sumber daya harus dibuat dengan akses tulis (lihat D3D10_CPU_ACCESS_WRITE).
D3D10_MAP_READ_WRITE
Nilai: 3
Sumber daya dipetakan untuk membaca dan menulis. Sumber daya harus dibuat dengan akses baca dan tulis (lihat D3D10_CPU_ACCESS_READ dan D3D10_CPU_ACCESS_WRITE).
D3D10_MAP_WRITE_DISCARD
Nilai: 4
Sumber daya dipetakan untuk menulis; konten sumber daya sebelumnya tidak akan terdefinisi. Sumber daya harus dibuat dengan akses tulis (lihat D3D10_CPU_ACCESS_WRITE).
D3D10_MAP_WRITE_NO_OVERWRITE
Nilai: 5
Sumber daya dipetakan untuk menulis; konten sumber daya yang ada tidak dapat ditimpa (lihat Keterangan). Bendera ini hanya valid pada puncak dan buffer indeks. Sumber daya harus dibuat dengan akses tulis (lihat D3D10_CPU_ACCESS_WRITE). Tidak dapat digunakan pada sumber daya yang dibuat dengan bendera D3D10_BIND_CONSTANT_BUFFER .

Keterangan

Enumerasi ini digunakan dalam ID3D10Buffer::Map, ID3D10Texture1D::Map, ID3D10Texture2D::Map, dan ID3D10Texture3D::Map.

Arti D3D10_MAP_WRITE_NO_OVERWRITE

D3D10_MAP_WRITE_NO_OVERWRITE menandakan bahwa aplikasi berjanji untuk tidak menulis ke data yang digunakan tahap Perakitan Input (IA). Sebagai gantinya, GPU memungkinkan aplikasi untuk menulis ke bagian lain dari buffer yang sama. Aplikasi harus memastikan bahwa aplikasi tidak menulis data apa pun yang digunakan oleh tahap IA.

Misalnya, pertimbangkan buffer yang diilustrasikan dalam diagram berikut. Jika panggilan Draw telah dikeluarkan yang menggunakan simpul 4-6, aplikasi yang memanggil Peta pada buffer ini harus memastikan bahwa panggilan tersebut tidak menulis ke simpul yang akan diakses panggilan Draw selama penyajian.

Diagram data vertex dalam berbagai tahap pemanfaatan Namun, memastikan hal ini bisa sulit, karena GPU seringkali banyak bingkai di belakang CPU dalam hal bingkai mana yang saat ini sedang diproses. Melacak bagian sumber daya mana yang digunakan karena panggilan yang dilakukan 2 hingga 5 bingkai yang lalu sulit dan rawan kesalahan. Karena itu, disarankan agar aplikasi hanya menulis ke bagian sumber daya yang tidak diinisialisasi saat menggunakan D3D10_MAP_WRITE_NO_OVERWRITE.

Penggunaan umum D3D10_MAP_WRITE_DISCARD dengan D3D10_MAP_WRITE_NO_OVERWRITE

D3D10_MAP_WRITE_DISCARD dan D3D10_MAP_WRITE_NO_OVERWRITE biasanya digunakan bersama dengan buffer indeks/puncak dinamis, meskipun juga dapat digunakan dengan tekstur dinamis.

Penggunaan umum dari kedua bendera ini melibatkan pengisian buffer indeks/puncak dinamis dengan geometri yang dapat dilihat dari posisi kamera saat ini. Pertama kali data dimasukkan ke dalam buffer pada bingkai tertentu, Peta dipanggil dengan D3D10_MAP_WRITE_DISCARD; melakukannya membatalkan isi buffer sebelumnya. Buffer kemudian diisi dengan semua data yang tersedia.

Penulisan berikutnya ke buffer dalam bingkai yang sama harus menggunakan D3D10_MAP_WRITE_NO_OVERWRITE. Ini akan memungkinkan CPU untuk mengakses sumber daya yang berpotensi digunakan oleh GPU selama pembatasan yang dijelaskan sebelumnya dihormati.

Persyaratan

Persyaratan Nilai
Header d3d10.h

Lihat juga

Enumerasi Sumber Daya