If there’s one thing that excited me before the release of Windows 7 Beta, it was the news of a new animation framework being implemented. Vista did not have a native animation framework as far as I know, but with Windows 7 Microsoft did a native implementation which means higher performance. Channel 9 describes the new Windows Animation Manager (previously called Windows Scenic Animation):
Smooth animations are fundamental to many graphical UI applications, and Windows 7 introduces a native animation framework for managing the scheduling and execution of animations. The animation framework supplies a library of useful mathematical functions for specifying behavior over time and also lets developers provide their own behavior functions. The framework supports sophisticated resolution of conflicts when multiple animations attempt to manipulate the same value simultaneously. An application can specify that one animation must be completed before another can begin and can force completion within a set time. The new framework also helps animations determine appropriate durations.
If you have knowledge about developing applications for Apple’s OS X, you’ll quickly think this is Windows version of Core Animation, and you really wont be wrong. If you bother to check out the implementations of Core Animation in various OS X applications, it’ll only add to your excitement over the possibilities available to developers and the cool eye candy that can be implemented in applications for Windows 7.
This video from Channel 9 explains Windows Animation Manager and shows off some nice looking demos. Although, this brings yet another option for developers to use Windows Animation Framework instead of WPF, I personally think performance would be a big variable in making that choice. WPF is all managed code, where as Windows Animation Framework is not.
I have yet to find any information on whether this will be back ported to Windows Vista or not, but so far no signs of it. This new animation framework is really powerful, and I can’t wait to see applications that use it.