Clutter的图形渲染BackEnd(一)

昨天思考的问题是:Mobile Linux上GL/ES等 3D APP与XServer的关系?今天思考的问题是:Clutter与本地3D/2D图形渲染实现层的关系如何?

 

GL/ES等 3D APP与XServer的关系的学习总结如下:

http://blog.csdn.net/shallon_luo/archive/2009/10/13/4663130.aspx

 

我们看到的Clutter ,无非是一个图形开发的类库,是OpenGL的高级面向用户的封装,Clutter是否用了Glx等技术呢?让我们看看Clutter的文档。

 

从Clutter的文档看(也许不是最新的文档),支持X11、GLX、EGL、EGLX几种BackEnd。(Win 32这里就自动忽略了)

 

VII. Clutter Backends
ClutterBackend  — Backend abstraction
X11 Specific Support  — X11 specific API
GLX Specific Support  — GLX specific API
Win32 Specific Support  — Win32 specific API
EGL Specific Support  — EGL specific API
EGLX Specific Support  — EGLX specific API

EGL和EGLX的BackEnd基本没有什么业务方法,看样子就像预留的尚未完善的BackEnd。X11的BackEnd是最完整的,包含了的定义 ClutterX11TexturePixmap, ClutterTexture文档中是An actor for displaying and manipulating images。有意思的是X11的BackEnd也包含了X11事件处理的定义及。从ClutterX11XInputEventTypes的定义和clutter_x11_handle_event  clutter_x11_has_event_retrieval 等函数的定义可以看得出来。
typedef enum {
  CLUTTER_X11_XINPUT_KEY_PRESS_EVENT = 0,
  CLUTTER_X11_XINPUT_KEY_RELEASE_EVENT,
  CLUTTER_X11_XINPUT_BUTTON_PRESS_EVENT,
  CLUTTER_X11_XINPUT_BUTTON_RELEASE_EVENT,
  CLUTTER_X11_XINPUT_MOTION_NOTIFY_EVENT,
  CLUTTER_X11_XINPUT_LAST_EVENT
} ClutterX11XInputEventTypes;
Glx的BackEnd,同样定义了ClutterX11TexturePixmap,却没有定义X11输入事件处理相关的部分。
X11的BackEnd目前尚无法看出是单纯的2D图形渲染,还是通过X11间接做的3D图形渲染。GLX的BackEnd应该是绕过X11直接
通过3D图形加速的驱动进行直接的图形渲染接口。具体的细节,再找个时间看看。
 

 

你可能感兴趣的:(linux,mobile,文档,actor,button,图形)