| 1 | Qt for Embedded Linux Virtual Framebuffer | 
|---|
| 2 | =============================== | 
|---|
| 3 |  | 
|---|
| 4 | The virtual frame buffer allows a Qt for Embedded Linux program to be developed | 
|---|
| 5 | on your desktop machine, without switching between consoles and X11.  The virtual | 
|---|
| 6 | framebuffer consists of a shared memory region (the virtual frame buffer) | 
|---|
| 7 | and a utility to display the framebuffer in a window.  The display is updated | 
|---|
| 8 | periodically, so you will see discrete snapshots of the framebuffer rather | 
|---|
| 9 | than each individual drawing operation.  For this reason drawing problems | 
|---|
| 10 | such as flickering may not be apparent until the program is run using a real | 
|---|
| 11 | framebuffer. | 
|---|
| 12 |  | 
|---|
| 13 | To use the virtual framebuffer: | 
|---|
| 14 |  | 
|---|
| 15 | 1. Ensure QT_NO_QWS_VFB is not set in qconfig.h (when you configure Qt, | 
|---|
| 16 | add the -qvfb option). | 
|---|
| 17 | 2. Start qvfb (qvfb should be compiled as a normal Qt for X11 application, | 
|---|
| 18 | NOT as a Qt for Embedded Linux application!). | 
|---|
| 19 | 3. Start a Qt for Embedded Linux server (i.e. construct QApplication with | 
|---|
| 20 | QApplication::GuiServer flag, or run a client with the -qws option). | 
|---|
| 21 |  | 
|---|
| 22 | qvfb supports the following command line options: | 
|---|
| 23 |  | 
|---|
| 24 | [-width width]   the width of the virtual framebuffer (default: 240). | 
|---|
| 25 | [-height height] the height of the virtual framebuffer (default: 320). | 
|---|
| 26 | [-depth depth]   the depth of the virtual framebuffer (1,4,8 or 32, default: 8). | 
|---|
| 27 | [-nocursor]      do not display the X11 cursor in the framebuffer window. | 
|---|
| 28 | [-qwsdisplay]    the Qt for Embedded Linux display ID, e.g. -qwsdisplay :1 (default :0). | 
|---|
| 29 | [-skin skinfile] tells qvfb to load a skin file, e.g. -skin pda.skin | 
|---|
| 30 |  | 
|---|
| 31 | Please refer to the file "pda.skin" as an example of what a skin file looks like. | 
|---|
| 32 | The format for skin files is: | 
|---|
| 33 | Image filename of skin with buttons in their up positions | 
|---|
| 34 | Image filename of skin with buttons in their down positions | 
|---|
| 35 | X offset of top left corner of the virtual screen on the skin image | 
|---|
| 36 | Y offset of top left corner of the virtual screen on the skin image | 
|---|
| 37 | Width of the virtual screen on the skin image | 
|---|
| 38 | Height of the virtual screen on the skin image | 
|---|
| 39 | Number of defined button regions | 
|---|
| 40 | Then for each button region the format is: | 
|---|
| 41 | Button identifier | 
|---|
| 42 | Qt scan codes to generate for the button | 
|---|
| 43 | Top left X coordinate of the button region | 
|---|
| 44 | Top left Y coordinate of the button region | 
|---|
| 45 | Bottom right X coordinate of the button region | 
|---|
| 46 | Bottom right Y coordinate of the button region | 
|---|
| 47 |  | 
|---|
| 48 | The virtual framebuffer is a development tool only.  No security issues have | 
|---|
| 49 | been considered in the virtual framebuffer design.  It should not be used | 
|---|
| 50 | in a production environment and QT_NO_QWS_VFB should always be in force | 
|---|
| 51 | in production libraries. | 
|---|