Moonlight项目团队的21天

5月底收到在巴黎举行的ReMix07大会的参会邀请后,Mono团队开始夜以继日地投入到他们的Silverlight实现——Moonlight项目中。用Miguel de Icaza自己的话 说:

5月31日,除了学习Silverlight、探究如何解码视频、 对视频进行简单测试 并开始 计划 之外,还没有什么可以演示的东西。

不过仅靠Silverlight 1.0 API做为参考,通过Email沟通和即时通讯工具(IRC),在三周的时间内他们就完成了下面这些工作:

6月14日

  • 文本渲染(Jeff)
  • 放射变化(Sebastien)
  • 在改变子节点时Canvas处理附带属性
  • 实现下载工具(Downloader)(Toshok)
  • 托管下载工具(Miguel)
  • 鼠标移入/移出事件(Miguel)
  • 从网络上加载图片
  • Everaldo实现内嵌型插件,而不是现在正用的Hack

6月15日

  • 文本中的Inline和Run
  • 性能提升
  • 连接单个对象的鼠标事件
  • 使用Assembly从XAML文件中装载定制的对象
  • Everaldo完成用Javascript修改界面的插件
  • Sebastien开始用Silverlight将Surface导出至Gtk#

6月16日

  • XAML依赖文件的装载(Miguel,Jackson)
  • Toshok使用绑定沙盒优化渲染
  • Jackon负责hook依赖装载
  • Jeff重构视频引擎,使其可重用
  • C#绑定

6月17日

  • Jeff实现VideoBrush
  • Sebastien实现多种图像属性,可通过特定参数进行渲染
  • 更新Event系统,Surface现在能以正确的顺序得到事件
  • 修复动画解析器,Surface动画现在可正常定时
  • Everaldo在HTML页面里增加对XAML内容的支持(在URL里面用#标识)
  • Jackson实现XAML装载时对x:Class的支持

6月18日

  • Rolf实现在Moon类型系统和绑定里对Nullable类型的支持,以在C#代码中映射Nullable到C++ Nullable
  • Jeff实现了对VideoBrush共享MediaElement的支持
  • Jeff为Runs实现Brush
  • Paolo帮助勾画Moonlight的Surface,使交互更平滑
  • Chris和Sebsatien优化屏幕渲染的性能
  • Chris提高动画和屏幕的刷新,构建基于Xlib的图像表面
  • Jackson实现Path Data解析,Sebsatien完成底层的架构,使得Sam Ruby的例子站点上的其他例子可以渲染
  • Jackson和Sebastien实现由于Path渲染丢失的不同片段
  • Jason实现了对XAML的支持

6月19日

  • Javascript桥接DependencyObject可用,Javascript控制的XAML时钟事例现在可以运行
  • 实现集合迭代
  • 解决浏览器正常关闭问题
  • Rolf实现一些丢失的托管绑定

项目的进展确实让人惊讶,在如此短的时间里竟然撰写了超过3万8千行代码,展示的截屏证明了这一切。在一个应用程序中内置Moonlight,以让Linux应用支持Silverlight内容的这个想法令人惊叹。祝贺Mono团队,在这么短的时间内就在Moonlight项目上取得了如此不俗的成绩!

查看英文原文:Moonlight in 21 days

你可能感兴趣的:(Moonlight项目团队的21天)