MediaPortal II gets opensource wpf engine
WPF (Windows Presentation Foundation) , is a new technology from Microsoft for creating really cool GUIs
Although WPF is a wonderfull piece of technology, it also has some major drawbacks. One of those drawbacks is that there is no way to integrate WPF with DirectX and/or DirectShow. Although WPF contains its own internal video player that player is so limited and unusable for an application like MediaPortal. Some other drawbacks are the focus/input management and offcourse the fact that its closed source
That said, WPF still rocks. Skinners get really nice features like vector graphics, linear& radial gradient brushes, image brushes, panels, storyboards, triggers, animations etc etc etc
So I have started on a new mission:
For MP-II I'm creating my own opensource version of WPF
click here to read more
click here to discuss this post
With our own opensource WPF skinengine we get all the nice stuff from WPF and since its opensource we can perfectly integrate with other technologies like DirectX and DirectShow
Creating an opensource version of WPF is not a light task, but in the last couple of weeks we already came a long way.
Here's a list of whats already done:
Layout engine
- StackPanel
- Canvas
- DockPanel
Animation engine
- Storyboard
- ColorAnimation & ColorAnimationUsingKeyFrames
- DoubleAnimation & DoubleAnimationUsingKeyFrames
- PointAnimation & PointAnimationUsingKeyFrames
- Trigger
- EventTrigger
Brushes:
- LinearGradientBrush
- RadialGradientBrush
- ImageBrush
- VisualBrush
Visuals:
- Border
- Button
- UIElement
- FrameworkElement
- XamlParser (We use MyXaml here, thx Marc!)
- Resources
For performance reasons we offload as much work as possible to the graphics card. For example the brushes (like the RadialGradientBrush) is fully rendered by the use of vertex/pixel shaders
We also try to make our version as compatible as possible with Microsoft WPF so that if you use Expression blend, or if you have exisiting xaml files they should be very easy to port to MP-II
Frodo