Bagikan melalui


Bekerja dengan Sistem Beberapa Monitor (Direct3D 9)

Konsep mode layar penuh eksklusif dipertahankan dalam Direct3D 9, tetapi tetap sepenuhnya implisit dalam panggilan metode IDirect3D9::CreateDevice dan IDirect3DDevice9::Reset . Setiap kali perangkat berhasil direset atau dibuat dalam operasi layar penuh, objek Direct3D yang membuat perangkat ditandai sebagai memiliki semua adaptor pada sistem tersebut. Status ini dikenal sebagai mode eksklusif, dan pada titik ini objek Direct3D memiliki mode eksklusif. Mode eksklusif berarti bahwa perangkat yang dibuat oleh objek Direct3D9 lainnya tidak dapat mengasumsikan operasi layar penuh atau mengalokasikan memori video. Selain itu, ketika objek Direct3D9 mengasumsikan mode eksklusif, semua perangkat selain perangkat yang masuk layar penuh ditempatkan ke dalam status hilang. Untuk informasi tentang cara menangani perangkat yang hilang, lihat Perangkat yang Hilang (Direct3D 9).

Seiring dengan mode eksklusif, objek Direct3D9 diberitahu tentang jendela fokus yang akan digunakan oleh perangkat. Mode eksklusif dirilis ketika perangkat layar penuh terakhir yang dimiliki oleh objek Direct3D9 tersebut diatur ulang ke mode berjendela atau dihancurkan.

Perangkat dapat dibagi menjadi dua kategori ketika objek Direct3D9 memiliki mode eksklusif. Kategori perangkat pertama adalah perangkat yang dibuat oleh objek Direct3D9 yang sama yang membuat perangkat yang sudah layar penuh, memiliki jendela fokus yang sama dengan perangkat yang sudah layar penuh, dan mewakili adaptor yang berbeda dari perangkat layar penuh apa pun. Perangkat dalam kategori ini tidak memiliki batasan mengenai kemampuannya untuk direset atau dibuat dan tidak ditempatkan ke dalam status hilang. Perangkat dalam kategori ini bahkan dapat ditempatkan ke mode layar penuh.

Perangkat yang tidak dalam kategori ini, yang akan menjadi perangkat yang dibuat oleh objek Direct3D9 yang berbeda, atau dengan jendela fokus yang berbeda, atau untuk beberapa adaptor dengan perangkat yang sudah layar penuh tidak dapat diatur ulang dan tetap dalam keadaan hilang sampai mode eksklusif hilang.

Implikasi praktisnya adalah bahwa beberapa aplikasi monitor dapat menempatkan beberapa perangkat dalam mode layar penuh, tetapi hanya jika semua perangkat ini untuk adaptor yang berbeda, dibuat oleh objek Direct3D9 yang sama, dan semuanya berbagi jendela fokus yang sama.

Saat Anda membuat perangkat baru menggunakan objek IDirect3D9 dan jendela fokus yang sama, perangkat asli Anda akan kehilangan permukaannya. Anda harus memanggil IDirect3DDevice9::Reset pada perangkat pertama agar aplikasi Anda dapat menggunakannya. Misalnya, untuk membuat dua perangkat, lakukan hal berikut:

  1. Buat Perangkat 1
  2. Buat Perangkat 2
  3. Reset Perangkat 1

Tips Pemrograman