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.
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 |