写点什么

Moonlight 项目团队的 21 天

  • 2007-06-22
  • 本文字数:1087 字

    阅读完需:约 4 分钟

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

2007-06-22 08:08871

评论

发布
暂无评论
发现更多内容

Go,一文搞懂 defer 实现原理

微客鸟窝

Go 语言 8月日更

JavaScript 有关数组的 slice 截断函数

HoneyMoose

netty系列之:在netty中使用protobuf协议

程序那些事

Java Netty 程序那些事

5年程序员问我:什么是断言?

CodeNongXiaoW

测试 后端 接口工具

redis6安装和可视化工具

4ye

redis 后端 8月日更

带你入门antv.g6流程图

华为云开发者联盟

可视化 流程图 API graph 图可视化引擎

从λ演算到函数式编程聊闭包(2):彻底理解JavaScript闭包规则

zhoulujun

闭包 闭包函数

在线JSON转YAML工具

入门小站

工具

百度地图开发-显示实时位置信息 04

Andy阿辉

android Android 小菜鸟 Android端 8月日更

Vue进阶(六十四):iframe更改src后页面未刷新问题解决

No Silver Bullet

Vue iframe 跨域 8月日更

微信业务架构图-外包学生管理系统架构

毛先生

架构实战营

Rust从0到1-高级特性-Traits 进阶

rust Traits 高级特性

从Docker到Kubernetes | 爱数云原生演进历程

爱数技术范儿

Kubernetes 云原生

Week1 Homework

Ray_c

#架构实战营

干货 | 数据为王,携程国际火车票的 ShardingSphere 之路

SphereEx

数据库 开源

微信业务架构

一叶知秋

架构实战营

docker入门:vue和可视化界面的部署,另附ngxin配置

小鲍侃java

8月日更

多云管理中的多租户解决方案

鲸品堂

多租户 多云管理 实践案例

mock.js的作用

与风逐梦

大前端 后端 Mock

正经人一辈子都用不到的 JavaScript 方法总结 (一)

编程三昧

JavaScript 大前端 8月日更 模板字符串 String.raw

ShardingSphere Proxy 初步体验

ShardingSphere-Proxy

LeetCode刷题09-简单 回文数

ベ布小禅

8月日更

Linux之nc命令

入门小站

Linux

JIT-动态编译与AOT-静态编译:java/ java/ JavaScript/Dart乱谈

zhoulujun

dart JIT AOT 动态编译 静态编译

使用明道云搭建电梯维修与保养系统

明道云

微信业务架构和学生管理系统架构设计

Geek_db27b5

微信业务架构 学生管理系统架构

从λ演算到函数式编程聊闭包(1):闭包概念在Java/PHP/JS中形式

zhoulujun

闭包 闭包函数

微信业务架构图 & 学生管理系统方案

缘分呐

架构 设计

IntelliJ IDEA 如何显示提交输入的信息历史

HoneyMoose

InnoDB解决幻读的方案——LBCC&MVCC

阿Q说代码

MySQL innodb MVCC 8月日更 LBCC

面试侃集合 | SynchronousQueue公平模式篇

码农参上

队列 SynchronousQueue 8月日更

Moonlight项目团队的21天_研发效能_James Vastbinder_InfoQ精选文章