PowerVR QScreen Driver+ −
======================+ −
+ −
This QScreen plugin driver allows the QtOpenGl module to integrate with PowerVR+ −
hardware from Imagination Technologies. Using this plugin, applications may use+ −
QGLWidget & QGLPixelBuffer with OpenGL ES. The integration with PowerVR drivers+ −
is built as two libraries: The actual QScreen plugin used by Qt (in the+ −
pvreglscreen directory) and a WSEGL plugin for the PowerVR drivers (in the+ −
QWSWSEGL directory).+ −
+ −
Qt/Embedded needs to be configured with the QT_QWS_CLIENTBLIT and+ −
QT_NO_QWS_CURSOR defines.+ −
+ −
The PowerVR drivers provide the WSEGL plugin API to allow window systems such as+ −
QWS to integrate correctly. In order to use the integration, the WSEGL plugin+ −
(libpvrQWSWSEGL.so, usually installed into the Qt library directory) must be in+ −
the LD library path. The PowerVR driver also needs to be told which WSEGL library+ −
to use. This is done by creating/modifying /etc/powervr.ini:+ −
+ −
[default]+ −
WindowSystem=libpvrQWSWSEGL.so+ −
+ −
Note: It is important that the /etc/powervr.ini file not contain ^M (Ctrl-M) DOS+ −
end of line markers at the end of its lines. If ^M markers are present, then the+ −
libpvrQWSWSEGL.so driver will not be loaded and the default null Linux driver+ −
will be loaded silently instead. Make sure that the end of line markers are+ −
strictly Unix-style markers.+ −
+ −
+ −
***************************************************************************+ −
* IMPORTANT: To build the QScreen plugin and the WSEGL library it depends *+ −
* on, the pvr2d.h, wsegl.h headers for your platform are required. You *+ −
* can find a copy of these headers in src/3rdparty/powervr for SGX based *+ −
* platforms like the TI OMAP3xxx. They probably will not work on MBX *+ −
* because of differences in the layout of certain PVR2D structures. *+ −
* You can tell Qt where to find the actual headers for your system by *+ −
* setting QMAKE_INCDIR_POWERVR in the mkspec. *+ −
***************************************************************************+ −
+ −
When you start a Qt/Embedded application, you should modify the QWS_DISPLAY+ −
environment variable to use the "powervr" driver instead of "LinuxFb". For+ −
example, if your original QWS_DISPLAY variable was:+ −
+ −
LinuxFb:mmWidth40:mmHeight54:0+ −
+ −
then it should be changed to:+ −
+ −
powervr:mmWidth40:mmHeight54:0+ −
+ −
To test the OpenGL ES integration, you can use the hellogl_es example and run it+ −
on the device with:+ −
+ −
hellogl_es -qws+ −
+ −
The driver also supports screen rotation if Qt is configured with the+ −
-qt-gfx-transformed option and the QWS_DISPLAY variable is wrapped in a+ −
"Transformed" declaration:+ −
+ −
Transformed:powervr:mmWidth40:mmHeight54:Rot90:0+ −
+ −
Know Issues:+ −
* A QGLWidget may not have window decorations if it is a top-level window.+ −
* On some platforms, starting a QWS application after the system has been up+ −
for a long time may cause the driver to fail. This is due to fragmentation+ −
of main memory prevening older PowerVR drivers from allocating a contiguous+ −
region of phyical RAM for the GL surface.+ −