New features for RC2 over 1.0:
- Support for tween functions in animations. For example, e.Animate.Tween(t => t * t).To = 100 will tween the animation clock (between 0 and 1) using a square function.
- Added Penner's Easing Equations to DoubleBl under the new Ease member. For example, e.Animate.Tween(t=>t.Ease.Bounce.OutIn) will tween the animation using a bounce out-in easing equation. See Tweens.cs in the Tutorial for examples of all the easing equations. Easing equations can be used anywhere, not only in animations, but also in pixel shaders.
- Using Microsoft's DLR to generate code for databinding and a few other places. A recent build of the DLR dlls are included in Bling to support this. Code generation through the DLR is a pretty powerful feature and I hope to take advantage of this more in the future.
- Added a Bezier curve sample to the tutorial in Bezier.cs, which demonstrates how Bezier curves can be used in pixel shaders.
This is a complete redesign of Bling to make it suitable for a 1.0 release. The biggest change is that all the DSLs have been unified into a single set of wrapper types that are easier to use than before. We now provide wrapper types for many WPF classes that provide high-level property accessors that support databinding by default. Additionally, pixel shaders are now simple texture-to-pixel functions that can directly access expressions that refer to dependency properties. Bling will take care of all the bookkeeping needed to ensure that databinding occurs so that up-to-date values for these expressions are available in the shader. Lots of documentation has been added on the codeplex site, with a semi-complete tutorial.
The biggest addition to Bling in this release is support for physics. A physics example has been added to the tutorial but we haven't written the docs yet. That will come soon!
Bling is currently only available as a Visual Studio 2008 project that can be included into your own solutions. The distribution includes the Bling project as well as GettingStarted and Tutorial projects for learning how to use Bling. Feedback is appreciated!