Bagikan melalui


Grafik BufferEd Ganda

Berkedot adalah masalah umum saat memprogram grafik. Operasi grafis yang memerlukan beberapa operasi pengecatan kompleks dapat menyebabkan gambar yang dirender tampak berkedip atau memiliki tampilan yang tidak dapat diterima. Untuk mengatasi masalah ini, .NET Framework menyediakan akses ke buffering ganda.

Buffering ganda menggunakan buffer memori untuk mengatasi masalah berkedot yang terkait dengan beberapa operasi cat. Ketika buffering ganda diaktifkan, semua operasi cat pertama-tama dirender ke buffer memori alih-alih permukaan gambar di layar. Setelah semua operasi cat selesai, buffer memori disalin langsung ke permukaan gambar yang terkait dengannya. Karena hanya satu operasi grafis yang dilakukan pada layar, gambar berkedot yang terkait dengan operasi pengecatan kompleks dihilangkan.

Buffering Ganda Default

Cara term mudah untuk menggunakan buffering ganda dalam aplikasi Anda adalah dengan menggunakan buffering ganda default untuk formulir dan kontrol yang disediakan oleh .NET Framework. Anda dapat mengaktifkan buffering ganda default untuk kontrol Windows Formulir Windows dan yang ditulis dengan mengatur properti ke DoubleBufferedtrue atau dengan menggunakan SetStyle metode . Untuk informasi selengkapnya, lihat Cara: Mengurangi Kedinginan Grafis dengan Buffering Ganda untuk Formulir dan Kontrol.

Mengelola Grafik Buffered Secara Manual

Untuk skenario buffering ganda yang lebih canggih, seperti animasi atau manajemen memori tingkat lanjut, Anda dapat menggunakan kelas .NET Framework untuk mengimplementasikan logika buffering ganda Anda sendiri. Kelas yang bertanggung jawab untuk mengalokasikan dan mengelola buffer grafis individu adalah kelasnya BufferedGraphicsContext . Setiap domain aplikasi memiliki instans default BufferedGraphicsContext sendiri yang mengelola semua buffering ganda default untuk aplikasi tersebut. Dalam kebanyakan kasus, hanya akan ada satu domain aplikasi per aplikasi, jadi umumnya ada satu default BufferedGraphicsContext per aplikasi. Instans default BufferedGraphicsContext dikelola oleh BufferedGraphicsManager kelas . Anda dapat mengambil referensi ke instans default BufferedGraphicsContext dengan memanggil Current. Anda juga dapat membuat instans khusus BufferedGraphicsContext , yang dapat meningkatkan performa untuk aplikasi intensif grafis. Untuk informasi tentang cara membuat BufferedGraphicsContext instans, lihat Cara: Mengelola Grafik Buffered secara Manual.

Menampilkan Grafik Buffer secara Manual

Anda dapat menggunakan instans BufferedGraphicsContext kelas untuk membuat buffer grafis dengan memanggil BufferedGraphicsContext.Allocate, yang mengembalikan instans BufferedGraphics kelas. Objek BufferedGraphics mengelola buffer memori yang terkait dengan permukaan penyajian, seperti formulir atau kontrol.

Setelah dibuat, BufferedGraphics kelas mengelola penyajian ke buffer grafis dalam memori. Anda dapat merender grafik ke buffer memori melalui Graphics, yang mengekspos Graphics objek yang secara langsung mewakili buffer memori. Anda dapat melukis ke objek ini Graphics seperti yang Anda lakukan pada Graphics objek yang mewakili permukaan gambar. Setelah semua grafik digambar ke buffer, Anda dapat menggunakan BufferedGraphics.Render untuk menyalin konten buffer ke permukaan gambar di layar.

Untuk informasi selengkapnya tentang menggunakan BufferedGraphics kelas , lihat Merender Grafik Buffered Secara Manual. Untuk informasi selengkapnya tentang grafik penyajian, lihat Grafik dan Gambar di Formulir Windows

Baca juga