

QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT This indicates that no special integration is necessary to use EGL with the framebuffer no plugins must be loaded. Note: On some boards a special value of none is used instead of an actual plugin. If necessary, eglfs can be configured using the following environment variables: Opening additional OpenGL windows or mixing such windows with QWidget-based content isn't supported Qt terminates the application with an error message.įurthermore, APIs designed for desktop platforms or environments with a windowing system, such as Drag and Drop, are not supported on EGLFS. EGLFS supports a single fullscreen GL window (as of Qt 5.3), like OpenGL-based QWindow, a QQuickView, or a QOpenGLWidget. There are further restrictions for OpenGL-based windows.

This approach works well when there is a main window that exists for the application's lifetime and all other widgets are either not top-levels or are created afterward, once the main window is shown. This behavior is necessary because with EGLFS there is always exactly one native window and one EGL window surface these belong to the widget or window that is created first. For example, dialogs, popup menus, or combo boxes. This window is also chosen to be the root widget window into which all other top-level widgets are composited. For QWidget, the widgets' contents are rendered using the CPU into images, which are then uploaded into textures and composited by the plugin.ĮGLFS forces the first top-level window - either a QWidget or a QQuickView - to become fullscreen.

In addition to Qt Quick and native OpenGL applications, EGLFS supports software-rendered windows, like QWidget, too. It is the recommended plugin for modern Embedded Linux devices that include a GPU. EGL device integration – dynamically loaded pluginsĮGLFS is a platform plugin for running Qt applications on top of EGL and OpenGL ES 2.0, without an actual windowing system like X11 or Wayland.EGLFS hooks – a single source file compiled into the platform plugin.Typically, these adaptations are provided as: This is why we need the board or GPU-specific adaptation code. Creating a native window, which won't necessarily be an actual window on the screen, must still be done by platform-specific means.

Qt can use EGL for context and surface management, however the API contains no platform-specifics. EGLFSĮGL is an interface between OpenGL and the native windowing system. See Configure an Embedded Linux Device for an overview of configuring Qt for cross-compilation using an Embedded Linux toolchain. For single-process use cases, the Qt Platform Abstraction is a superior solution multi-process use cases are supported through Wayland. Note: As of Qt 5.0, Qt no longer has its own window system (QWS) implementation.
