summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/eglconvenience/qeglplatformintegration.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Move eglfs-only parts back from eglconvenienceLaszlo Agocs2015-07-161-366/+0
| | | | | | | | | | | | | | The integration, screen, window and cursor classes were split in Qt 5.3 under a plan of sharing these between eglfs, the Android port and potentially other future plugins. This never materialized. Maintaining the artificial split is getting difficult and is prone to errors. Therefore it is time to merge back these base classes into eglfs. The result is cleaner, smaller, and potentially better performing code. eglconvenience is now restored to be a collection of convenience classes instead of platform plugin bits. Change-Id: I75c6ad876ef66a1a0c5b39c1c307f928d2ed47d4 Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
* evdevtouch: Add hotplug supportLaszlo Agocs2015-04-091-2/+2
| | | | | | | | | | | Follow the exact same structure as evdevmouse and keyboard. We must do monitoring via device discovery just like we do for keyboards and mice. Otherwise the usage of touchscreens that connect via USB or can be turned on/off independently from the board becomes troublesome. Change-Id: I2de3b519e8d617b0612e5df486e481bbc09b9c8c Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-111-7/+7
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* Unify input device hotplugging support for embeddedLaszlo Agocs2015-01-211-6/+1
| | | | | | | | | | | | | | | | | | | | | | On embedded the mouse cursor will now appear and reappear regardless of how the input handling code is loaded (via a generic plugin or compiled-in to the platform plugin). Instead of passing around QDeviceDiscovery instances that only works when compiling-in the code into the platform plugin, introduce a new internal central QInputDeviceManager. The single instance of this provides a place to store any future input device related signals and properties. Also introduce mouse hotplugging support to linuxfb. [ChangeLog][QtGui] The mouse cursor on Embedded Linux is now handling hotplugging correctly with eglfs and linuxfb regardless of how the input handling code is loaded (via a generic plugin or built in to the platform plugin). Change-Id: I147c1b04a193baf216598015264f2c06e1b20f84 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* eglfs: Make sure there is a platform window for the backing storeLaszlo Agocs2015-01-061-0/+2
| | | | | | | | | Some example code creates the backing store before the platform window. Make this case working by calling create(). Task-number: QTBUG-43543 Change-Id: I29c260f38eddd15ea09931e814c5dbd031b65505 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* Add generic OpenGL compositor and backingstore bitsLaszlo Agocs2014-11-261-4/+5
| | | | | | | | By removing the EGL(FS) dependencies we get classes that can be used by any platform plugin that runs without a windowing system. Change-Id: If99b42de5a4da02bbef80863609b6d92c6734613 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* Simplify using tslib with eglfsLaszlo Agocs2014-10-171-1/+11
| | | | | | | | | | | tslib support can now be built-in into eglfs, like evdev. Set QT_QPA_EGLFS_TSLIB to 1 to use tslib instead of evdevtouch. The input device can be controlled via TSLIB_TSDEVICE. Change-Id: Iff6bdbb4d133f73eca5528705844862236f8752b Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* EGLFS: Add support for multiple displaysLouai Al-Khanji2014-10-101-10/+3
| | | | | Change-Id: Id039e0ed2d99562eb2a5cfe1e7b34013c75ff3ac Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-091-2/+2
|\ | | | | | | Change-Id: I05fcd8dc66d9ad0dc76bb7f5bae05c9876bfba14
| * Rename internal enum value to avoid clashing with XlibLaszlo Agocs2014-10-051-2/+2
| | | | | | | | | | | | Change-Id: I4926d1f75ece220d28abf9f2e7081e41f0aaf339 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Martin Jansa <Martin.Jansa@gmail.com>
* | Do not assume QEGLPlatformCursor in the common egl bitsLaszlo Agocs2014-10-031-1/+1
| | | | | | | | | | | | | | The kms hook uses a custom QPlatformCursor. Change-Id: I4543df6314a45abfc20495cbffdd376aed8bbe93 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | EGLFS: Fix plugin destruction (again)Louai Al-Khanji2014-10-031-8/+6
| | | | | | | | | | | | | | | | | | The previous patch was flawed since by the time the QEglPlatformIntegration destructor was called the virtual function table did not point to the methods in QEglFsPlatformIntegration any more. Change-Id: I310e5e3e734a22b44645ba912b579f193bcfae86 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | EGLFS: Fix plugin destructionLouai Al-Khanji2014-10-011-0/+11
|/ | | | | | | | | | | | | | | | | | | The proper init/destruction order is as follows: QEglFsHooks::platformInit() eglInitialize() eglTerminate() QEglFsHooks::platformDestroy() Prior to this patch platformDestroy() was called before eglTerminate(), leading to a crash on some platforms. Additionally we need to destroy the native windows before deleting the screen, otherwise the QEglFSWindow destructor ends up calling into the deallocated screen. Change-Id: Id08ccbac9bb44a778bcf1a55f73c0057e0a7b3af Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Update license headers and add new license filesMatti Paaso2014-09-241-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* Add EglDisplay case to nativeResourceForContext on eglfsAndras Becsi2014-07-301-0/+4
| | | | | | | | | | This is needed to make it possible to use the same interface for retrieving the EGLDisplay on Windows and EGLFS, thus get rid of cluttering ifdefs. Change-Id: I37b848b1017eacbf8a29627cd157b74e22e5f40c Reviewed-by: Michael Bruning <michael.bruning@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* QEGLPlatformIntegration: fix build on AndroidJ-P Nurmi2014-06-281-0/+2
| | | | | Change-Id: Ibf2ae4563e2b842d5e70c1e66592e1dc2de4b3d4 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Add a way to access loadKeymap on eglfsLaszlo Agocs2014-06-251-2/+29
| | | | | | | | | [ChangeLog][QtGui] Keymaps are now changeable at runtime when using eglfs Task-number: QTBUG-39583 Change-Id: I93480da72c1d1d1db1914298fe624cae02b0b2d0 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Will Wagner <willw@carallon.com>
* Add support for querying "eglconfig" from eglfsAndras Becsi2014-06-131-0/+6
| | | | | | | | | | This makes it possible to retrieve the EGLConfig used by Qt to create the QOpenGLContext. QtWebEngine needs this to be able to get rid of EGL_BAD_MATCH errors on certain hardware by using the exact same EGLConfig in Chromium as used by Qt. Change-Id: I049c0d8637c44acfe160230e4bb81364d66413ab Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Support adopting an existing EGLContext in eglfs and xcbLaszlo Agocs2014-05-091-3/+8
| | | | | | | | | | | Add also a manual test application. For GLX there is an autotest since that is likely to be run on one of the CIs. For EGL and especially eglfs this is likely not the case so a manual test is better. Task-number: QTBUG-37552 Change-Id: Ib09db5d909befb68d16f69abd401a56abe55f28a Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Add support for querying "display" from eglfsLaszlo Agocs2014-05-091-2/+21
| | | | | | | | | | Return the native display which, with the x11 hooks, is the X11 Display*. This gives compatibility with xcb and allows QtWebEngine to run on eglfs in regular desktop builds without ozone. (this requires eglfs built with the x11 hooks of course) Change-Id: I8d25e2835c41a7e78f063a57a7d6c6b5e53a19b4 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Expose the EGLNativeDisplay through nativeResourceForIntegration.Zeno Albisser2014-03-131-2/+7
| | | | | | | | | This is necessary to allow QtWebEngine to create a separate display connection through eglGetDisplay to the same display as Qt is working on. Change-Id: I3635888bd5e41239ef18b197d24683dcea68f6ee Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Remove unused parameter from QEGLPlatformContext constructorLaszlo Agocs2014-03-101-3/+0
| | | | | | | | The API is chosen via QSurfaceFormat, the constructor argument is ignored. Remove this historical artifact. Change-Id: I4a5c1e12cb297de22f239ad0a6747c1c36168eed Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* QOpenGLWidget and new-style compositing on eglfsLaszlo Agocs2014-02-131-2/+20
| | | | | | | | | Integrate with QOpenGLTextureBlitter, QOpenGLWidget and friends. Change-Id: Ic2867b713a21a3d2820d546174fc9164b3dd220c Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* eglfs: Mouse hotplugging supportLaszlo Agocs2014-01-311-0/+22
| | | | | | | | | | | | | | On Embedded Linux with libudev support hotplugging was already working, except that the mouse cursor was not shown and hidden. This is now corrected so that the cursor disappears when all mice become disconnected and reappears if a mouse gets plugged in later on. [ChangeLog][QtGui] Mouse hotplugging is now fully supported in eglfs when running on Embedded Linux systems with libudev support enabled. Task-number: QTBUG-36374 Change-Id: Iec7c1557ba6085e3958dd357460cc032896fb174 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Disable terminal keyboard on eglfs and linuxfbLaszlo Agocs2014-01-241-4/+8
| | | | | | | | | | | | | | | | | | | | | Unify the behavior for eglfs, linuxfb and kms. The relevant code is now moved from kms into fbconvenience. From now on, on all three platforms, terminal keyboard input is turned off by default. This feature can be disabled by setting QT_QPA_ENABLE_TERMINAL_KEYBOARD to 1. This is similar to what the evdev-based keyboard handler did in QWS in Qt4. [ChangeLog][QtGui] The main Embedded Linux platform plugins (eglfs, linuxfb, kms) are changed to behave identically with regards to terminal keyboard input: it is turned off by default on all of these platforms. If this feature is not desired, it can be disabled by setting the environment variable QT_QPA_ENABLE_TERMINAL_KEYBOARD. Task-number: QTBUG-36394 Change-Id: I69e47ed7580464dc5e703e9a0e23891c7c8b7790 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* eglfs: Move reusable functionality to eglconvenienceLaszlo Agocs2014-01-171-0/+255
The cursor implementation is generic GL(ES) code that should be shared by all the present and future egl-based embedded platform plugins. Follow the pattern of QEGLPlatformContext and move this class into eglconvenience as QEGLPlatformCursor. Similarly, the common bits from the context implementation context are moved back to EGLPlatformContext. eglconvenience has now base classes for integration, screen, window, etc. too. By using these, eglfs becomes much smaller and cleaner. This also paves the way for creating new, separate EGL-based platform plugins for Android, embedded Linux, etc. Also added some documentation to each of the base classes. devicediscovery is now fixed to be usable on any platform. The implementation in this case is naturally a dummy one. This finally allows using it from anywhere without myriads of ugly ifdefs. Change-Id: I02946e360c04e02de7fe234a23a08320eff4ccf5 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>