关于 Clutter
作者: 刘鹏
日期: 2009-06-30
本文简要介绍了 Clutter 项目。

简介

clutter 是一个开源软件库,用于创建速度快 (fast)、视觉效果丰富 (visually rich)、支持 3D 和动画 (animated) 的图形用户界面。

clutter 使用 OpenGL 进行渲染,clutter 的 API 对 OpenGL 进行了封装,以 对 Clutter 使用者隐藏 GL 复杂性。clutter API 的目的是易用、高效并且具 有很大的灵活性。

特征

  • Scene-graph of layered 2D interface elements manipulated in 3D space via position, grouping, transparency, scaling, clipping and rotation.
  • Frame based animation engine providing path interpolation, transitions and other custom effects via Behaviours and Timelines.
  • Scriptable JSON based layout and animation file support.
  • Advanced input event handling including multiple pointing devices.
  • Custom Pango renderer providing efficient internationalised UTF8 text rendering.
  • Support for high end Open GL features such as Shaders and FBOs.
  • Support for media playback with GStreamer, Cairo graphics rendering, GTK+ embedding, Box2D physics engine and WebKit web rendering are available via optional add-on libraries.
  • Object oriented design via GObject with a familiar GTK+ like API.
  • Runs on Linux, Windows and OSX with backend window system support for GLX, EGL, WGL, SDL and Cocoa.
  • Support for mobile devices with fixed point internals and portability across Open GL, OpenGL ES 1.1 and OpenGL ES 2.0
  • 基于 C 开发, 实现了与 Perl, Python, C#, C++, Vala、Ruby等语言的绑定.

层次结构


| ClutterStage | ClutterActor | ClutterTimerline | ClutterAlpha | ClutterBehaviour |
-----------------------------------------------------------------------------------
| GObect | Glib | GdkPixBuf | Pango |      COGL      |
-----------------------------------------------------------------------------------
|         X11                       |      GLX       |
-----------------------------------------------------------------------------------

其它

clutter 的目的是成为一个通用的、提供丰富功能的底层库,帮助使用者快速方便的创建面向特定需要的高层 tool kit.

clutter 基于 GNU LGPL 发布,它收到开源社区的支持和 OpenHand 的商业赞助。

clutter blog 有最近的 clutter 新闻、开发进展、截图等信息。

SeeAlso:About Clutter