Track API change in QPlatformNativeInterface
[profile/ivi/qtbase.git] / src / plugins / gfxdrivers / powervr / README
1 PowerVR QScreen Driver
2 ======================
3
4 This QScreen plugin driver allows the QtOpenGl module to integrate with PowerVR
5 hardware from Imagination Technologies. Using this plugin, applications may use
6 QGLWidget & QGLPixelBuffer with OpenGL ES. The integration with PowerVR drivers
7 is built as two libraries: The actual QScreen plugin used by Qt (in the
8 pvreglscreen directory) and a WSEGL plugin for the PowerVR drivers (in the
9 QWSWSEGL directory).
10
11 Qt/Embedded needs to be configured with the QT_QWS_CLIENTBLIT and
12 QT_NO_QWS_CURSOR defines.
13
14 The PowerVR drivers provide the WSEGL plugin API to allow window systems such as
15 QWS to integrate correctly. In order to use the integration, the WSEGL plugin
16 (libpvrQWSWSEGL.so, usually installed into the Qt library directory) must be in
17 the LD library path. The PowerVR driver also needs to be told which WSEGL library
18 to use. This is done by creating/modifying /etc/powervr.ini:
19
20 [default]
21 WindowSystem=libpvrQWSWSEGL.so
22
23 Note: It is important that the /etc/powervr.ini file not contain ^M (Ctrl-M) DOS
24 end of line markers at the end of its lines. If ^M markers are present, then the
25 libpvrQWSWSEGL.so driver will not be loaded and the default null Linux driver
26 will be loaded silently instead.  Make sure that the end of line markers are
27 strictly Unix-style markers.
28
29
30 ***************************************************************************
31 * IMPORTANT: To build the QScreen plugin and the WSEGL library it depends *
32 * on, the pvr2d.h, wsegl.h headers for your platform are required.  You   *
33 * can find a copy of these headers in src/3rdparty/powervr for SGX based  *
34 * platforms like the TI OMAP3xxx.  They probably will not work on MBX     *
35 * because of differences in the layout of certain PVR2D structures.       *
36 * You can tell Qt where to find the actual headers for your system by     *
37 * setting QMAKE_INCDIR_POWERVR in the mkspec.                             *
38 ***************************************************************************
39
40 When you start a Qt/Embedded application, you should modify the QWS_DISPLAY
41 environment variable to use the "powervr" driver instead of "LinuxFb".  For
42 example, if your original QWS_DISPLAY variable was:
43
44     LinuxFb:mmWidth40:mmHeight54:0
45
46 then it should be changed to:
47
48     powervr:mmWidth40:mmHeight54:0
49
50 To test the OpenGL ES integration, you can use the hellogl_es example and run it
51 on the device with:
52
53     hellogl_es -qws
54
55 The driver also supports screen rotation if Qt is configured with the
56 -qt-gfx-transformed option and the QWS_DISPLAY variable is wrapped in a
57 "Transformed" declaration:
58
59     Transformed:powervr:mmWidth40:mmHeight54:Rot90:0
60
61 Know Issues:
62     * A QGLWidget may not have window decorations if it is a top-level window.
63     * On some platforms, starting a QWS application after the system has been up
64       for a long time may cause the driver to fail. This is due to fragmentation
65       of main memory prevening older PowerVR drivers from allocating a contiguous
66       region of phyical RAM for the GL surface.