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