On the 31st( of May), other than having learned about Silverlight, explored how to decode video, experiment a little with video and started planning for an implementation we had nothing to show.
Using only the Sliverlight 1.0 API as a guide, email communication and IRC they were able to implement the following in 3 weeks time:
June 14th:
- Text renders (Jeff).
- Radial gradients (Sebastien).
- Attached properties are now handled by Canvas on changed children.
- Implemented the downloader (Toshok).
- Managed downloader (Miguel).
- Mouse enter/leave events (Miguel).
- It is possible to load images from the net
- everaldo gets plugin using
June 15th:
- Inlines and Runs in text
- Performance improvements
- Mouse event routing to individual objects.
- Loading of custom objects from XAML files using assemblies.
- Everaldo gets plugin to change surfaces with javascript.
- Sebastien starts work on porting the surface to Gtk# with Silverlight, just in case.
June 16th
- Loading of xaml dependency files (Miguel, Jackson).
- Toshok optimizes rendering using bounding boxes.
- Jackson hooks this dependency loader.
- Jeff refactors the video engine to make it reusable.
- C# bindings.
June 17th
- Jeff implement VideoBrush
- Sebastien implements the various image properties, so that they render with the specified parameters.
- Event system updated, Surface now gets events in the correct order.
- Animation parser fixes, surface animations are now properly timed.
- Everaldo added support for XAML content in HTML pages (referenced with '#' in a url).
- Jackson got support for x:Class on XAML loading.
June 18th:
- Rolf implemented support for nullable types in the Moon typesystem and bindings to map Nullable
in the C# code to our C++ Nullables. - Jeff implemented support for having VideoBrushes share a MediaElement.
- Jeff implements brushes for Runs.
- Paolo helps with the profiling of Moonlight's Surface and helps us get interaction smoother.
- Chris and Sebsatien worked on tuning the performance for rendering on the screen.
- Chris improves animations and screen refreshes, and sets up xlib-based image surfaces.
- Jackson completes Path Data parsing, the underlying infrastructure was done by Sebsatien enabling the remaining samples from Sam Ruby's sample site to render.
- Jackson and Sebastien implement the various segments that are missing for the Path rendering
- Jackson implemented XAML support for
June 19th:
- Javascript bridge to DependencyObjects works, the Javascript-controlled XAML Clock sample works now.
- Collection iterators are implemented
- Work on proper browser shutdown.
- Many missing managed bindings are implemented by Rolf.
The project statistics are astounding with 38k+ lines of code written in a very short time period and the screenshots speak for themself. The idea to allow Moonlight to be hosted in a widget allowing Linux applications to host Silverlight content is very compelling. Congratulations to the Mono team for their accomplishing so much in such a short amount of time on Moonlight.