|
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. |