summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/eglfs/api/qeglfsintegration.cpp
Commit message (Collapse)AuthorAgeFilesLines
* eglfs: Fix raster windowsLaszlo Agocs2019-08-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Also sanitize the initial WebAssembly hack. Both eglfs and wasm lack the concept of true raster windows. A QWindow with RasterSurface is rendered with OpenGL no matter what. The two platforms took two different approaches to work around the rest of the machinery: - wasm disabled the QOpenGLContext warning for non-OpenGL QWindows, - eglfs forced the QWindow surfaceType to OpenGLSurface whenever it was originally set to RasterSurface. Now, the latter breaks since c4e9eabc309a275efc222f4127f31ba4677259b7, leaving all raster window applications failing on eglfs, because flush in the backingstore is now checking the surface type and disallows OpenGLSurface windows. (just like how QOpenGLContext disallows RasterSurface windows) To solve all this correctly, introduce a new platform capability, OpenGLOnRasterSurface, and remove the special handling in the platform plugins. Change-Id: I7785dfb1c955577bbdccdc14ebaaac5babdec57c Fixes: QTBUG-77100 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix setting Qt::WA_ShowWithoutActivating on eglfs windowMichal Klocek2019-04-161-0/+4
| | | | | | | | | | | | WebEngine HTML based popups depends on setting Qt::WA_ShowWithoutActivating, to keep forwarding events to chromium event handling. This works well with xcb, windows or coca windows backends, however was not respected on eglfs. Add check before activating the window. Task-number: QTBUG-69533 Change-Id: I66b249ec497af890c8a2228eee3bac3c806e77ed Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Move screen maintenance functions from QPlatformIntegration to QWSITor Arne Vestbø2019-03-191-11/+1
| | | | | | | | | | | | | | | QWindowSystemInterface is the de facto API for any plumbing going from the platform plugin to QtGui. Having the functions as protected members of QPlatformIntegration was idiosyncratic, and resulted in awkward workarounds to be able to call the functions from outside of the QPlatformIntegration subclass. The functions in QPlatformIntegration have been left in, but deprecated so that platform plugins outside of qtbase have a chance to move over to the new QWSI API before they are removed. Change-Id: I327fec460db6b0faaf0ae2a151c20aa30dbe7182 Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* Ability to switch language under platform eglfs/linuxfbElena Zaretskaya2019-01-251-0/+13
| | | | | | | | | | | | | | I need to change keymap under platforms eglfs and linuxfb (without wayland). I use the function QEglFSFunctions::loadKeymap(const QString&), but there's no way to switch between english and another language than to press AltGr as a modifier. I added the function that allows to change the language. And also added the ability to switch the keymap and language for the platform linuxfb and also added the ability to switch the keymap and language for the platform linuxfb Task-number: QTBUG-72452 Change-Id: I37432cf60d375555bea2bf668ec1387322b4964f Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix no-opengl developer buildsAllan Sandfeld Jensen2018-11-101-0/+1
| | | | | | | Change-Id: I0c8fb7d0aa9a0d95a13447315bd8c1104089fed1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QByteArray: add compare() with case sensitivity optionsThiago Macieira2018-06-221-2/+1
| | | | | | | | | | | | | Need to do the same for startsWith() and endsWith(). indexOf() is a lot harder. [ChangeLog][QtCore][QByteArray] Added compare(), which takes Qt::CaseSensitivity as one of the parameters. This function is more efficient than using toLower() or toUpper() and then comparing. Change-Id: Ib48364abee9f464c96c6fffd152e69bde4194df7 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* eglfs: Forward nativeRes.ForScreen.() to backendsLionel CHAZALLON2018-01-201-1/+2
| | | | | Change-Id: I928f97483806ee74ca844941eed455ff4f9d9508 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* eglfs: Forward nativeRes.ForInteg.() to backendsLaszlo Agocs2017-09-191-0/+1
| | | | | | | | | | | | | Expose the fd from eglfs_kms. More exposed bits will follow later on. [ChangeLog][Platform Specific Changes][eglfs] The DRM+GBM backend now exposes the DRM/GBM device handle under the key "dri_fd", queriable via nativeResourceForIntegration(). Task-number: QTBUG-63088 Change-Id: Iac95393c115bb83d1f65cb4a7acc0ea3e7d3e68f Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* eglfs: Allow forwarding platformFunction() to backendsLaszlo Agocs2017-09-191-3/+1
| | | | | | Task-number: QTBUG-63088 Change-Id: I52cc56324c755cc4f7c9388470bfd27793b4abeb Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Add USB HID device feature to INTEGRITYKimmo Ollila2017-05-301-0/+8
| | | | | | | | | | | | This change adds USB mouse handling support for INTEGRITY Change-Id: I8a2a51c8c3578898e90dd5bbb01f6aed6c64e2a4 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Timo Aarnipuro <timo.aarnipuro@qt.io> Reviewed-by: Nikola Velinov <nvelinov@ghs.com> Reviewed-by: Rolland Dudemaine <rolland@ghs.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Tero Alamaki <tero.alamaki@qt.io>
* Fix warning for -no-feature-evdevTasuku Suzuki2017-04-261-2/+3
| | | | | Change-Id: I95af276a6d21e67a980cce1d8c6e41900ece7f31 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* DRM/KMS config: add support for specifying the primary screenLaszlo Agocs2017-01-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not having a way to say that a given output should be registered as the primary screen (meaning it comes first in the QGuiApplication::screens() list, emits primaryScreenChanged() signal etc.) can be a problem for some systems. The order of the outputs array in the JSON configuration file is not relevant in this respect since screens are registered either in the original DRM connector order, or, when the virtual desktop layout is specified via virtualIndex, in the order specified by virtualIndex. The primary screen status is independent from this. Therefore, add a new, optional boolean property: primary. For example, the following forces the QScreen corresponding to the VGA output to be the primary screen on the Renesas R-Car H2 board, even though by default it is the HDMI one that happens to be reported first by the system. { "device": "/dev/dri/card0", "outputs": [ { "name": "HDMI1", "mode": "1280x720" }, { "name": "VGA1", "mode": "1280x720", "primary": true }, { "name": "LVDS1", "mode": "off" } ] } In addition, improve the quality of the logging output. [ChangeLog][Platform Specific Changes] Added support for specifying the primary screen in the JSON config file in QT_QPA_EGLFS_KMS_CONFIG when running on DRM/KMS with eglfs. Task-number: QTBUG-57980 Change-Id: Iba490800dee3b7162c68c4d40b0822f3f6d81b69 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* eglfs: Activate the window on the primary screenPier Luigi Fiorini2017-01-091-1/+4
| | | | | | | | Having the window on the last screen focused is inconvenient since the main application UI is likely to be shown on the primary screen. Change-Id: I2e7945a903cb432d3428c773ac89c662374632c9 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-131-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure qmake/Makefile.unix.macos qmake/Makefile.unix.win32 qmake/generators/win32/msvc_vcproj.cpp src/3rdparty/pcre/qt_attribution.json src/corelib/io/qsettings.cpp src/corelib/kernel/qdeadlinetimer.cpp src/platformsupport/kmsconvenience/qkmsdevice.cpp src/platformsupport/kmsconvenience/qkmsdevice_p.h src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicescreen.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.h tests/manual/qstorageinfo/printvolumes.cpp tools/configure/configureapp.cpp Change-Id: Ibaabcc8e965c44926f9fb018466e8b132b8df49e
| * Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-11-241-1/+1
| | | | | | | | | | | | | | | | | | Conflicts: src/network/socket/qnativesocketengine_winrt.cpp tools/configure/configureapp.cpp tools/configure/environment.cpp Change-Id: Ieae6f2ee004a87f041751852b687484f91ee4480
* | Merge "Merge remote-tracking branch 'origin/5.8' into dev" into refs/staging/devLiang Qi2016-11-181-5/+7
|\|
| * Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-11-161-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/common/linux-android.conf src/gui/opengl/qopengl.h src/network/socket/qnativesocketengine_winrt.cpp src/network/socket/qnativesocketengine_winrt_p.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/eglfs/api/qeglfsintegration.cpp src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp sync.profile Change-Id: If70aaf2c49df91157b864cf0d7d9513546c9bec4
* | Enable support for OpenVGAndy Nichols2016-11-171-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit re-enables support for OpenVG in Qt, but not in the same way as in Qt 4.8. The first part is about adding a test and using the new configure system to enable OpenVG. There is still support code in Qt for setting up EGL to provide a surface and context for rendering with the OpenVG API, this commit enables a path to do so. Normally to get access to an EGLContext from a QWindow you do so via QOpenGLContext, but in setups without OpenGL but with EGL and OpenVG this doesn't make sense (there would be no QOpenGLContext). So the intended way is to use a QWindow to get an EGLSurface, then create an EGLContext directly (without going through QPA). Change-Id: I0f75aadbaa3cd006deb7e6fd12cfbb574870fba4 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Enable building EGLFS and MinimalEGL with QT_NO_OPENGLAndy Nichols2016-11-171-9/+34
|/ | | | | | | | | | | | | It is possible to have support for EGL without having support for OpenGL for example with OpenVG. Unfortanately many features of EGLFS require OpenGL (Cursor, MultiWindow, QEGLPlatformContext, QBackingStore), so the plugins become pretty useless on their own. This is necessary if you still want to use Qt as a method to provide an EGL surface to render to via QWindow. This is the method by which Qt Quick uses OpenVG to render its content when available. Change-Id: I34973b21bf1932865950ce6a78b71b3a29360d65 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* port to modularized platformsupport librariesOswald Buddenhagen2016-10-151-14/+14
| | | | | Change-Id: I20eb0e33abfd70b6a5240e7b6b0aa0425f2d2ee7 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* eglfs: Move remaining sources to under apiLaszlo Agocs2016-09-221-0/+439
Move platform integration, context and offscreensurface to under 'api'. This allows accessing these from out-of-tree eglfs backends as well. For instance, the upcoming eglfs_emu backend for the Qt Simulator may need access to QEglFSIntegration. Clean up the project files and remove out-of-date comments (the private module QtEglFSDeviceIntegration is not really header-less since 5.7). Change-Id: If96dd5780a6bd33a1cf29164364df9bf921c4d01 Reviewed-by: Andy Nichols <andy.nichols@qt.io>