The integration of GL/GLES application windows with Ubuntu Unity2D desktop is
achieved by following steps:
1. GL/GLES applications render a frame into the pixmap buffers that are allocated in
the EXA driver.
2. In the SwapBuffers implementation, the driver notifies X server that the pixmap
buffer region is damaged through Xdamage and Xfixes APIs.
3. Then the X server will present the latest pixmap buffer to the Unity2D desktop while
maintaining the proper window overlap characteristics relative to the other windows
on the desktop.
14.3.4 EGL- X Library
The EGL-X library implements the low-level EGL interface used in X-Windows System.
The implementation details are as follows:
• The
eglDisplay
native display type is "
Display*
" in X-Windows.
• The
eglWindowSurface
native window surface type is "
Window
" in X-Windows.
• The
eglPixmapSurface
native pixmap surface type is "
Pixmap
" in X-Windows.
When an
eglWindowSurface
is created, the back buffers, used for double-buffering, can have
different representations from the window surface (based on the selected
eglConfig
). An
attempt is made to create each back buffer by using the representation, which provides
the most efficient blit of the back buffer contents to the window surface when
eglSwapBuffers
is called.
The back buffer is allocated by creating an X pixmap of the necessary size. Use the X
extension for the i.MX X Driver module to query the physical frame buffer address for
this X pixmap if it was allocated in the offscreen frame buffer memory.
14.3.5 xorg.conf for i.MX 6
The /etc/X11/xorg.conf file must be properly configured to use the i.MX 6 X Driver.
This configuration appears in a
Device
section of the file which contains both mandatory
and optional entries. The following example shows a preferred configuration for using
the i.MX 6 X Driver:
Section "Device"
Identifier "i.MX Accelerated Framebuffer Device"
Driver "vivante"
Option "fbdev" "/dev/fb0"
Option "vivante_fbdev" "/dev/fb0"
Software Operation
i.MX 6Solo/6DualLite Linux Reference Manual, Rev. L3.0.35_4.1.0, 09/2013
128
Freescale Semiconductor, Inc.