I've been spending some time reading up on layered windows in previous versions of the .NET framework (<= 3.5) and how performance has been improved.
Dwayne Need has a good reply here (although from 2007):
First of all, I'm a little puzzled as to why layered windows are rendered in hardware using DirectX and then copied to GDI for the bitmap effects. Is that a video-mem to sys-mem copy or does GDI use a hardware buffer, too?
For Vista and Windows 7, I thought the whole point of the DWM was to perform window compositing such that Direct3D-enabled windows would render in hardware and the DWM would simply use those buffers and make sure they were blended correctly together and
so on. Now it sounds like GDI is a part of the path, and I thought it was almost considered an obsolete technology on Vista and Windows 7. Is this still true in .NET 4?
The default window menus in a WPF application contain a drop shadow. As far as I've been able to tell, the menus are layered windows which means the menus themselves are rendered by WPF in hardware and then GDI and
UpdateLayeredWindow are used render (and blend) the menus on top of the WPF window. Does that mean the bitmap effects of the shadow are drawn using GDI rather than Direct3D?
If the DWM need to take the final window and composite it
View Complete Post