I’ve been running Vista at the office since Beta 2. And although I ran it on my old mule of a laptop at home, it didn’t quite have enough to enable Aero…I actually wish I had a screen shot of the 1.0 graphics score it got. While graphics are still a liability on my laptop…(I probably won’t be playing Halo 2 on it), it did manage to get a 3.0. Everything else was in the high 4’s. Now that I have a personal machine that can do everything Vista is capable of, I’ve had a few wow moments. Like when I did the win+tab switching while a video was playing in IE…(a Silverlight video no less) and it was streaming seamlessly in the preview mode. Or when I hovered over the task bar and saw the same thing. The screen shot Doesn’t do it justice…but if you’ve seen it in action, you know what I’m talking about.
Before Vista was released, there were a lot of questions about just what advantage the DWM (Desktop Window Manager) would bring over User and GDI. There were even comparisons between the DWM and the windowing system for MacOS (sorry I don’t know the name, I’m not a Mac programmer). To be honest there is no comparison. The DWM uses a retained model for graphics. What this means is that a window is asked to render itself once and the DWM stores the visual until the application tells it that it’s visual is invalid.
For the average application developer, this doesn’t bring a big advantage. But anyone who has made a custom control (pre-WPF) can appreciate not having to write additional code that re-renders the rectangle that was covered by a dialog. Basically, telling Windows that you want to update what the user sees is a lot easier to do than having Windows tell you that you need to update.
The end user of course benefits from this as well. And not just in the eye candy department (but if you think it doesn’t matter, it does). Because the DWM retains the raw graphics calls that your window made to render itself, it can put those in a place that makes sense, like the ram of the video card. Think about it. The operating system itself leverages the power of your GPU. This translates into less strain on the CPU, which makes the operating system (and hence your app) more responsive. For free.
Knowing more about the DWM should help one get a better understanding of just what WPF is. It is a .Net wrapper around the first Windows API that was designed with .Net as a consideration. (User and GDI were created well before .Net was conceived.) To learn more about the DWM, visit this old post by Greg Schechter. He might know a tiny bit more about it than I.