Overlay adalah fungsi perangkat keras dari kartu video yang memungkinkan untuk melapisi gambar di layar utama (permukaan utama) tanpa menyalin memori video. Overlay dilakukan pada video card digital-to-analog converters (RAMDAC) dalam proses pembuatan sinyal video yang dikirim ke monitor. RAMDAC memindai permukaan utama baris demi baris selama proses dan beralih ke gambar overlay saat itu.
Diperlukan
Set efek khusus dari perpustakaan
instruksi
Langkah 1
Untuk mengaktifkan Overlay, perlu mempertimbangkan untuk menulis program yang menampilkan beberapa efek khusus pada permukaan desktop, atau di tempat-tempat dengan warna yang berubah-ubah (jika kita menganggap mode menggambar di desktop sebagai mode utama).
Langkah 2
Pilih efek khusus. Mengenai pilihan efek khusus, Anda seharusnya tidak terlalu sulit - mereka hanya dapat dipinjam dari contoh ke perpustakaan FastLIB, misalnya, algoritma untuk menggambar bola api. Setelah itu, Anda perlu menambahkan sistem partikel sederhana ke efeknya, dan beri nama hasilnya karena akan lebih mudah. Inisialisasi DirectDraw. Hanya permukaan primer yang masuk akal untuk diinisialisasi.
Langkah 3
Periksa kemampuan untuk menampilkan overlay dan membuatnya. Untuk melakukannya, gunakan fungsi GetOverlayCaps. Tidak ada yang rumit dan menarik di GetOverlayCaps - ini adalah transfer dari DDCaps dari setiap bit atau nilai yang terkait dengan overlay ke dalam struktur yang lebih kompak - TOverlayCaps. Selanjutnya, Anda harus memperbaiki ukuran overlay agar sesuai dengan parameter yang diperoleh selama penggunaan fungsi. Pada kenyataannya, kemungkinan keberhasilan eksekusi kode tersebut sangat kecil, jadi Anda tidak boleh terlalu fokus padanya - khususnya, ukurannya tidak boleh dibatasi untuk menghindari pekerjaan yang lambat, tidak perlu memeriksa ukuran dalam byte untuk kemungkinan menembus isi memori video, dan sebagainya.
Langkah 4
Secara umum, ada baiknya memeriksa lebih banyak untuk mendapatkan laporan, karena proses pembuatan overlay dilakukan dengan metode brute force. Intinya adalah tidak ada fungsi seperti EnumOverlayFormats yang ada dan belum dibuat, jadi pengguna harus memeriksa format apa pun yang bisa dibayangkan dan berharap beruntung. Namun, ada fungsi IDirectDraw7GetFourCCCodes, yang dirancang untuk menentukan kode format non-RGB (FourCC), tetapi itu tidak hanya mencakup YUV yang diperlukan, tetapi juga format tekstur terkompresi, dan lainnya. Menggunakan seluruh daftar dan mendefinisikan setiap format sebagai YUV atau non-YUV tampaknya tidak rasional.
Langkah 5
Hapus gambar dari desktop, jika ada, dan tetapkan warna DCK padanya. Aktifkan hamparan warna DCK. Hamparan akan diaktifkan dan siap digunakan. Efek visual dari penggunaannya dapat dinilai setelah meminimalkan semua jendela yang berfungsi.