MKSheppard wrote:Actually, lots of stuff is already 2D hardware accelerated, I just question the need to use a 3D pixel shader to draw the damn window on screen. It's Germanic in it's inefficiency.
How is it inefficient? The advent of high-resolution displays (200 dpi and up) will make pixel-pushing power an absolute necessity for user interfaces, especially when the vaunted resolution-independent GUIs start showing up. GPUs have monstrous bandwidth and excel at parallelized tasks, like the ones often involved in image manipulation. It's
incredibly efficient.
Without hardware acceleration, the CPU has to do all the work to composite screen elements, which results in massive slowdowns for even trivial things like alpha blending. The GPU does these things much, much faster. Inefficient would be letting the massive processing power of today's GPUs sit there idly during 95% of the computer's usage.
The current 2D acceleration that Windows uses is blindingly fast for simple pixel-blitting, but it's been around for a very long time, and the benefits new DirectX 9-class GPUs bring to the table simply don't help the current Windows GUI all that much. That's why Microsoft is moving the Longhorn and XP GUI over to Avalon, which includes a DirectX 9 equivalent of Quartz 2D Extreme.
The point is that if you view every window as a flat, textured polygon, you can do more with that window. You can do anything you want to it with a fragment program and in
real time. Viewing the window as a texture makes things like Exposé feasible and fast.
EDIT: And why did it take Apple until the 4th iteration of OS X to add hardware acceleration for all the pretty fancy GUI effects?
Apple's hardware acceleration makes extensive use of the ARB_fragment_program. This extension
must be supported at the hardware level on the GPU in order for these improvements to work. And those GPUs are all DirectX 9-class (i.e. nVidia's GeForce 5200 and up and ATi's Radeon 9600 and up).
They knew that all this stuff imposed a severe performance penalty, yet put it in anyway back in about 2000.
They bet on the long term. Because of their strategy, any app natively developed using CoreGraphics gets most of the acceleration for free with no work on the app developer's part.
Apple chose long-term benefits and took the growing pains associated with it, and now it's paying off in a big way. Their developers have had access to the underlying APIs for 4 years now and have started using them already. Trust me, Microsoft would
love to be in Apple's position with Avalon, but they won't be because all their big-time app developers are using XP's drawing system and will likely not switch over to Avalon for a very long time. Meanwhile, Apple has been able to deprecate QuickDraw without upsetting too many people.