Apakah buffering ganda masih diperlukan saat Komposisi Desktop diaktifkan?
Dalam Panduan Kompatibilitas Aplikasi Microsoft:
Antarmuka Perangkat Grafis (GDI)
Sebelum Windows Vista dan Windows Server 2008, pegangan jendela (HWND) dilukis langsung ke layar, yang memiliki manfaat tertentu, namun membatasi cara Windows dapat menampilkan dan mengelola jendela tingkat atas. Di Windows Vista dan Windows Server 2008, semua jendela tingkat atas dirender ke bitmap di luar layar (mirip dengan WS_EX_LAYERED), dan Desktop Window Manager menggabungkan gambar-gambar tersebut untuk menggambar desktop.
Sepertinya semua rendering sekarang dilakukan ke bitmap di luar layar:
jendela dirender ke bitmap di luar layar
Apakah ini benar?
Alasan saya bertanya adalah karena saya masih melihat kedipan selama siklus pengecatan standar:
- WM_ERASEBKGND
- WM_CAT
saat komposisi desktop diaktifkan:
saya akan berasumsi bahwa di antara panggilan ke
BeginPaint(hWnd, paintStructure);
...
EndPaint(hWnd, paintStructure);
bahwa semua pengecatan akan terjadi pada buffer belakang:
jendela dirender ke bitmap di luar layar
Sementara itu, buffer depan tidak akan terpengaruh.