Bagikan melalui


Mengunci Sumber Daya (Direct3D 9)

Mengunci sumber daya berarti memberikan akses CPU ke penyimpanannya. Opsi penguncian berikut didefinisikan untuk sumber daya:

  • D3DLOCK_DISCARD
  • D3DLOCK_READONLY
  • D3DLOCK_NOOVERWRITE
  • D3DLOCK_NOSYSLOCK
  • D3DLOCK_NO_DIRTY_UPDATE

Untuk detail tentang mengunci bendera dan bagaimana bendera tersebut terkait dengan sumber daya tertentu, lihat halaman referensi tentang metode penguncian sumber daya individual. Pengembang aplikasi harus mencatat bahwa bendera D3DLOCK_DISCARD, D3DLOCK_READONLY, dan D3DLOCK_NOOVERWRITE hanyalah petunjuk. Durasi tidak memeriksa bahwa aplikasi mengikuti fungsionalitas yang ditentukan oleh bendera ini. Aplikasi yang menentukan D3DLOCK_READONLY tetapi kemudian menulis ke sumber daya harus mengharapkan hasil yang tidak terdefinisi. Secara umum, bekerja melawan bendera penguncian, termasuk bendera penggunaan penguncian, tidak dijamin berfungsi dalam rilis selanjutnya dan dapat dikenakan penalti performa yang signifikan.

Operasi penguncian diikuti oleh operasi buka kunci. Misalnya, setelah mengunci tekstur, aplikasi kemudian melepaskan akses langsung ke tekstur terkunci dengan membuka kuncinya. Selain memberikan akses prosesor, operasi lain yang melibatkan sumber daya tersebut diserialisasikan selama kunci. Hanya kunci tunggal untuk sumber daya yang diizinkan, bahkan untuk wilayah yang tidak tumpang tindih, dan tidak ada operasi akselerator di permukaan yang dapat berlangsung saat operasi penguncian luar biasa di permukaan tersebut.

Setiap antarmuka sumber daya memiliki metode untuk mengunci buffer yang terkandung. Setiap sumber daya tekstur juga dapat mengunci sub-bagian sumber daya tersebut. Sumber daya 2D (permukaan) memungkinkan penguncian sub-persegi panjang, dan sumber daya volume memungkinkan penguncian sub-volume atau kotak. Setiap metode kunci mengembalikan struktur yang berisi penunjuk ke penyimpanan yang mendukung sumber daya dan nilai yang mewakili jarak antara baris atau bidang data, tergantung pada jenis sumber daya. Untuk detailnya, lihat daftar metode untuk antarmuka sumber daya. Penunjuk yang dikembalikan selalu menunjuk ke byte kiri atas di sub-wilayah terkunci.

Saat bekerja dengan buffer indeks dan vertex, Anda dapat melakukan beberapa panggilan kunci; namun, Anda harus memastikan bahwa jumlah panggilan kunci cocok dengan jumlah panggilan buka kunci.

DXTn menyimpan piksel dalam blok 4x4 yang dikodekan, dan hanya dapat dikunci pada batas 4x4.

Sumber Daya Direct3D