Commit dfee3800 authored by Laszlo Agocs's avatar Laszlo Agocs
Browse files

embedded: Improve env var and input param docs


Task-number: QTBUG-56021
Change-Id: I565712cd7b5f81ccb9cffacba874f49bf596c198
Reviewed-by: default avatarTopi Reiniö <topi.reinio@theqtcompany.com>
Showing with 70 additions and 17 deletions
......@@ -187,6 +187,23 @@
application type. The special cursor implementations, such as the KMS/DRM
backend's hardware cursor, may not support rotation.
\li \c {QT_QPA_EGLFS_FORCEVSYNC} - When set, \c eglfs requests
\c FBIO_WAITFORVSYNC on the framebuffer device after each call to
eglSwapBuffers(). This is only relevant for backends relying on the legacy
\c fbdev subsystem of Linux. Normally, with a default swap interval of 1, Qt
assumes that calling eglSwapBuffers() takes care of vsync; if it doesn't (for
example, due to driver bugs), try setting \c QT_QPA_EGLFS_FORCEVSYNC to a
non-zero value.
\li \c {QT_QPA_EGLFS_FORCE888} - When set, the red, green, and blue color
channel sizes are ignored whenever creating a new context, window or offscreen
surface. Instead, the plugin requests a configuration with 8 bits per
channel. This can be helpful on devices where configurations with less than 32
or 24 bits per pixel (for example, 5-6-5 or 4-4-4) are chosen by default but
are known not to be ideal, for example, due to banding effects. Instead of
changing application code, this variable provides an easier shortcut to force
24 or 32 bpp configurations.
\endlist
In addition, the following - less commonly used - variables are
......@@ -219,18 +236,6 @@
0 will disable blocking on swap, resulting in running as fast as possible
without any synchronization.
\li \c {QT_QPA_EGLFS_FORCEVSYNC} - When set, \c eglfs requests
\c FBIO_WAITFORVSYNC on the framebuffer device.
\li \c {QT_QPA_EGLFS_FORCE888} - When set, the red, green, and blue color
channel sizes are ignored whenever creating a new context, window or offscreen
surface. Instead, the plugin requests a configuration with 8 bits per
channel. This can be helpful on devices where configurations with less than 32
or 24 bits per pixel are chosen by default but are known to be not suitable,
for example, due to banding effects. Instead of changing all the applications,
this variable provides an easier shortcut to force 24/32 bpp configurations
for a given device.
\li \c {QT_QPA_EGLFS_DEBUG} - When set, some debugging information is printed
on the debug output. For example, the input QSurfaceFormat and the properties
of the chosen EGL configuration are printed while creating a new
......@@ -354,11 +359,14 @@
Parameters like the device node name can be set in the environment variables
\c QT_QPA_EVDEV_MOUSE_PARAMETERS, \c QT_QPA_EVDEV_KEYBOARD_PARAMETERS and
\c QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS. Additionally, the built-in input handlers
can be disabled by setting \c QT_QPA_EGLFS_DISABLE_INPUT or
\c QT_QPA_FB_DISABLE_INPUT to \c 1. On some touch screens the coordinates must
be rotated, which is done by setting
\c QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS to \c {rotate=180}.
\c QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS. Separate the entries with colons. These
parameters act as an alternative to passing the settings in the \c{-plugin}
command-line argument, and with some backends they are essential: eglfs and
linuxfb use built-in input handlers so there is no separate \c {-plugin}
argument in use.
Additionally, the built-in input handlers can be disabled by setting
\c QT_QPA_EGLFS_DISABLE_INPUT or \c QT_QPA_FB_DISABLE_INPUT to \c 1.
\section2 Mouse
......@@ -373,6 +381,29 @@
configure time). This allows connecting or disconnecting an input device while
the application is running.
The \e evdev mouse handler supports the following extra parameters:
\list
\li \c {/dev/input/...} - Specifies the name of the input device. When not
given, Qt looks for a suitable device either via \e libudev or by walking
through the available nodes.
\li \c nocompress - By default, input events that do not lead to changing the
position compared to the last Qt mouse event are compressed; a new Qt mouse
event is sent only after a change in the position or button state. This can
be disabled by setting the \c nocompress parameter.
\li \c dejitter - Specifies a jitter limit. By default dejittering is disabled.
\li \c grab - When 1, Qt will grab the device for exclusive use.
\li \c abs - Some touchscreens report absolute coordinates and cannot be
differentiated from touchpads. In this special situation pass \c abs to
indicate that the device is using absolute events.
\endlist
\section2 Keyboard
The \e evdev keyboard handler supports the following extra parameters:
......@@ -468,6 +499,28 @@
supports single touch only, as opposed to \c evdevtouch which generates true
multi-touch QTouchEvent events too.
The \e evdev touch handler supports the following extra parameters:
\list
\li \c {/dev/input/...} - Specifies the name of the input device. When not
given, Qt looks for a suitable device either via \e libudev or by walking
through the available nodes.
\li \c rotate - On some touch screens the coordinates must be rotated, which
is done by setting \c rotate to 90, 180, or 270.
\li \c invertx and \c inverty - To invert the X or Y coordinates in the input
events, pass \c invertx or \c inverty.
\endlist
For example, doing \c{export
QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event5:rotate=180} before
launching applications results in an explicitly specified touch device and
flipping the coordinates - useful when the orientation of the actual
screen and the touch screen do not match.
\section2 Pen-based tablets
The \c evdevtablet plugin provides basic support for Wacom and similar,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment