KWin 新平台和 OpenGL ES 2.0 支持

nihui | 2011/02/19

近几个月,KWin 开发团队为移动设备带来了 KDE Plasma 工作空间的窗口管理器。此举需要将 KWin 的混成代码移植到 OpenGL ES 2.0,即可编程嵌入式图形硬件的开放图形 API。随着 KWin 代码迁移到 git,这些移植的成果已纳入到主干开发分支,并将随下一版本的 KDE 平台发布。 OpenGL ES 2.0 代码的纳入标志着移动设备 Plasma 工作空间开发的一个重要里程碑。移动桌面环境需要我们提供快速、完整又成熟的混成窗口管理器。KDE 的 KWin 为 Nokia N900 和未来平板终端等设备提供可靠成熟的混成管理器(视频所示的是 KWin 运行在一台早期的 Intel 平板电脑和一部 Nokia N900)。KWin 是目前首个支持这些功能的主流 X11 窗口管理器。

桌面改善 OpenGL ES 的工作成果所改善的不仅有移动设备的 KDE 桌面环境,还有普通 Plasma 工作空间用户的桌面。为移动平台所写的代码同样应用于 Plasma 桌面和上网本工作空间。KWin 还提供了新的基于 OpenGL 2 的混成器,也为那些不支持 OpenGL 2 的旧显卡保留了现有代码作为后备。 KWin 是首个完整利用 OpenGL 2 特性并同时兼容旧图形硬件的主流窗口管理器。KWin 是目前唯一一个同时支持非混成模式、OpenGL ES 2.0、OpenGL 2、OpenGL 1 和 XRender 混成模式的窗口管理器。而甚至在没有硬件加速的平台上,Plasma 工作空间也提供了最佳的用户体验。同时,KWin 为拥有先进硬件的用户提供了最佳的混成体验,如平滑特效和 Plasma 部件半透明特效所用的高斯模糊滤镜。 通过 OpenGL 2 混成器的实现,特校框架也获得了整体的性能改善;还有很多仍需改善。OpenGL 代码结构中的许多部分被抽象了出来以更好地适应 OpenGL 1 和 OpenGL 2。这样能减轻今后开发和维护代码的难度。底层渲染代码结构中的改善将立即让所有特效获益。

未来开发和自由驱动 未来的开发将致力于为完全适用自由软件的用户带来更好的图形体验,OpenGL ES 2.0 混成后端的完成标志着挑战的开始。OpenGL ES 2.0 的支持是 KDE Plasma 工作空间向 Wayland 架构移植的前提,而后者在长远看来可能是 X 服务器的后继。通过 KWin 向 OpenGL ES 的移植,KDE 开发团队已经为向 Wayland 移植的长远计划起了个好头。 附言提醒一句,OpenGL ES 移植所使用的是常规的 NVIDIA 桌面图形硬件和 Mesa 开发团队所提供的自由软件 nouveau 驱动。KWin 开发者很感谢那些自由软件驱动的开发者在常规的桌面 OpenGL 驱动之外还提供了 OpenGL ES 驱动。很高兴能看到自由软件驱动已达到了能用于开发新混成后端的阶段。就如视频中那样,新混成后端带来了明显的性能改善。OpenGL ES 的移植总共包含超过 120 次提交,更改了超过 80 个源代码文件。

来源:

http://dot.kde.org/2011/02/18/kwin-embraces-new-platforms-opengl-es-20-support

Tags: , ,

9 FEEDBACKS

  1. ……nihui你不要用个和我这么像的id啊。

  2. @csslayer 我也不想啊,原先注册的是叫 nihui 的,但是激活邮件一直收不到,只好另外再弄一个了。。。

  3. 心之所在

    @nihui 收邮件,我改了密码,改了这文章的署名。

  4. 振奋人心的消息啊。但我最担心的是Qt还有多久才能跑在wayland上……

    另外nick可以到设置里面修改貌似,跟id不直接相关。

  5. 看了在N900的表现,跑得不大顺……想要实用的话,还有好多东西等待被优化乃至阉割啊。 第二个视频里的窗口缩放倒是真的蛮舒服的。不知何时我这双显卡切换才能舒服啊。

    对了心之仁兄您说的那个显卡切换工具是什么来着?

  6. 心之所在

    @右京样一 多久前的事了……我早忘了名字

  7. 心之所在
  8. 心之所在

    没视频怎么行,上传到youku贴过来了,youku的转码有问题,视频最后几秒都没掉了,郁闷。

  9. @心之所在 太感谢了……我一直想不起来用Google的站内搜索。

Leave a Reply

Your email address will not be published. Required fields are marked *

Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).

This site uses Akismet to reduce spam. Learn how your comment data is processed.