summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* Implement initial IVI-shell support with shell integration.Yusuke Binsaki2016-02-1210-1/+548
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IVI-shell provides a shell interface for Weston, which maps the GENIVI API (http://www.genivi.org) for In-Vehicle Infotainment as Wayland-Ivi-Extension (http://wiki.projects.genivi.org/index.php/Wayland_IVI_Extension_Design). This patch is included in two protocol. The first is ivi-application protocol which provided by weston. Next is ivi-controller protocol which provided by Genivi's wayland-ivi-extension. In IVI use case, the client create and destroy surface with the unique ID by using ivi-application protocol. On the other hand, the controller such as HMI Controller control some properties, which are visibility, position, size, etc, with created the unique ID by using ivi-controller protocol. It means the unique ID is necessary to create and control the ivi-surface and the the ivi-layer. However Qt has no API to set the some surface or layer ID. In this ivi-shell plugin, the unique ID can be set via the environment parameter so that we can control the ivi-surface and ivi-layer. The name of environment parameter is QT_IVI_SURFACE_ID. QT_IVI_SURFACE_ID will be used as ivi-surface and ivi-layer. If application needs more than two surfaces, ivi-surface IDs will be incremented. When QT_IVI_SURFACE_ID isn't set, ivi-surface and ivi-layer ID will be generated internally. The ID consists of the process ID and the surface ID which is incremented in ivi-shell plugin. The process ID is used as lower 22 bit per 32bit. 23 to 32 bit is used as the surface IDs in a process. e.g. When the process ID is 0x765 and create two surfaces, ivi-layer ID is 0x765 and ivi-surface IDs are 0x765 and 0x00400765. +------------+---------------------------+ |31 23|22 0| +------------+---------------------------+ |0000 0000 00|00 0000 0000 0000 0000 0000| |<- ID ->|<- process ID ->| +------------+---------------------------+ We can set QT_WAYLAND_SHELL_INTEGRATION of the environment parameter to "ivi-shell" to use IVI-shell. Change-Id: Iddcfb3de89dc022530c0285524cf6bbf640147b6 Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
* Updated license headersAntti Kokko2016-01-2022-309/+441
| | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I76ae5d3e64f096eb3163d6163a38d68c7c1ca756 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Merge remote-tracking branch 'qt/5.6' into wip-compositor-apiPaul Olav Tvete2015-12-023-3/+3
|\ | | | | | | Change-Id: Ie70fdd03e1259a8cb75bbdbf1324e3e4a2b51807
| * Get rid of the egl config test and use what qtbase providesLaszlo Agocs2015-11-113-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | contains(QT_CONFIG, egl) and CONFIG += egl is the only sane way to test for and pull in EGL headers and libs. This is particularly important when trying to be robust and guard against half-broken sysroots on embedded where a naive PKGCONFIG += egl breaks. Also add an EGL_WAYLAND_BUFFER_WL define to keep wayland-egl compiling. We are not testing for that in any config tests may cause a failure in sysroots that have parts of Mesa thrown in but pick ip an older EGL header from the vendor's driver. Change-Id: I7b7e6a7a91e78dbda5b6954ad08761298c538efc Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Merge branch '5.6' into wip-compositor-apiLaszlo Agocs2015-10-271-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qwindow-compositor changes from 5.6 will be adapted separately. The traditional wayland-egl path is tested and is functional like before. The EGLStream support will be verified separately once the qwindow-compositor changes are ready. Conflicts: examples/wayland/qwindow-compositor/qwindowcompositor.cpp examples/wayland/qwindow-compositor/textureblitter.cpp examples/wayland/qwindow-compositor/textureblitter.h examples/wayland/server-buffer/client/client.pro examples/wayland/server-buffer/compositor/compositor.pro src/compositor/compositor_api/qwaylandbufferref.cpp src/compositor/compositor_api/qwaylandbufferref.h src/compositor/hardware_integration/qwlclientbufferintegration_p.h src/compositor/wayland_wrapper/qwlkeyboard.cpp src/compositor/wayland_wrapper/qwlkeyboard_p.h src/compositor/wayland_wrapper/qwlsurfacebuffer.cpp src/compositor/wayland_wrapper/qwlsurfacebuffer_p.h src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.h src/plugins/hardwareintegration/compositor/wayland-egl/wayland-egl.pro Change-Id: Ic2e3a6e8f74606c35b1e27cd4016fa133527d7ba
| * Support EGLStream in wayland-eglLaszlo Agocs2015-10-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For Wayland on NVIDIA. Tested with a Jetson TK1 Pro and Vibrante Linux. With just the hw integration no compositors would work out of the box since EGL_KHR_stream_consumer_gltexture only allows connecting to the texture bound to GL_TEXTURE_EXTERNAL_OES, meaning that assumptions about the target always being GL_TEXTURE_2D break horribly both in C++ and in shader code. In addition, buffers have to be extended with an additional updateTexture() operation as EGLStream requires to call ConsumerAcquire on every frame. Previously there was no concept of this as calling createTexture() on attach() was sufficient. Qt Quick bits are omitted since the refactored compositor API is pretty different. This means that QML compositors will not currently function in this environment. The qwindow-compositor example is enhanced to support the external texture target, but this won't apply for the refactored branch either. It is provided for testing purposes for the time being, and to show how C++ compositors can support different texture targets and correct operation with EGLStreams. Done-with: Louai Al-Khanji <louai.al-khanji@theqtcompany.com> Change-Id: I0e209fc0cbcf435cca83528d938eb50e4bdceb82 Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
* | Rename QtCompositor to QtWaylandCompositorJørgen Lind2015-09-1013-18/+15
|/ | | | | | | enable building QtWaylandCompositor by default Change-Id: I7cf34052b304ca9fef55b7e30ef6a6367b5d75f1 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* bradient: Activate the decoration's buttons on mouse release, not pressGiulio Camuffo2015-06-091-6/+36
| | | | | | Change-Id: I5a161119b20301a405bdde9bbea6bfbdcc4b9fa0 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-155-10/+0
|\ | | | | | | | | | | | | | | Conflicts: src/client/qwaylandshmbackingstore.cpp src/client/qwaylandwindow.cpp Change-Id: I795fd08f0fc5d3cb5ed55bf16e724f66b7567723
| * Remove useless EGL linking in pluginsOlivier Blin2015-03-275-10/+0
| | | | | | | | | | | | | | | | EGL libs are already linked from the hardwareintegration pri file, and the plugins do not make direct use of any EGL symbol. Change-Id: If6ecfee16e8c9d8fee67f03419941ced92d1eff8 Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Disable -Wcast-qual in qtwaylandv5.5.0-alpha1Thiago Macieira2015-03-102-0/+6
| | | | | | | | | | | | | | | | | | We have a lot of generated C source code that needs to do casting and C doesn't have const_cast, so the -Wcast-qual option produces a lot of noise. Let's make sure it isn't enabled in qmake.conf or qt_common.prf. Change-Id: Iee8cbc07c4434ce9b560ffff13c9635861a8eca9 Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Update copyright headersJani Heikkinen2015-02-1722-499/+323
| | | | | | | | | | | | | | | | | | 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. Change-Id: I5a74d32515c3f1fe7aa1916f4241c92832510f8c Reviewed-by: Antti Kokko <antti.kokko@theqtcompany.com>
* | Namespace the platform pluginsGiulio Camuffo2015-01-2916-0/+67
|/ | | | | | | | | | | | There currently is a QWaylandInputDevice class both in the wayland QPA plugin and in the QtCompositor API. This causes the qwindow-compositor example to crash when running nested in a wayland session due to a mismatch between the two classes. By namespacing all the plugin code we make sure that name clashes will not happen anymore. Change-Id: I17497cff697599200bea68bf01dfde474526390f Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* QtWaylandClient: Pluginize window decorations.Robin Burchell2014-09-235-1/+479
| | | | | | | | | | | | | | Convert to a D-pointer, split between abstract base class and an implementation. Also move implementation of the current built-in decoration to the "bradient" plugin, named in glorious memory of the programmer-designed blue gradient that will forever sear our eyeballs. The decoration plugin may be specified using the environment variable QT_WAYLAND_DECORATION. Change-Id: Idc99ab06ae138ad299bad2b62b9595379bd007ab Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* Remove deprecated method in brcm_egl pluginPier Luigi Fiorini2014-07-211-7/+0
| | | | | | | | QPlatformIntegrationPlugin::keys() was removed. This fixes brcm_egl build. Change-Id: I62af15a340a63794e6c6980ac6d72138d1cd60c8 Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* Merge remote-tracking branch 'origin/stable' into devOswald Buddenhagen2014-04-1512-12/+12
|\ | | | | | | | | | | also amended the libhybris plugin according to the merged change. Change-Id: I2987043cf21936aa0f221343d00dacdc574be06a
| * build fix for MODULE_PLUGINS_TYPETomasz Olszak2014-04-1510-10/+10
| | | | | | | | | | Change-Id: I8d44f50480440060eba84354e88fb2535e1d8e4a Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | Add a libhybris hardwareintegrations to share EGL server buffersGiulio Camuffo2014-03-268-0/+166
|/ | | | | | | | | Add a hardwareintegration plugin to make Qt server side EGL buffers shareable from the compositor to the client, such as what the server-buffer example does. Change-Id: I24558324d51202ca449b47b0ee395c8e81c10698 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Take advantage of the Qt 5 plugin json structureJorgen Lind2014-03-1122-204/+61
| | | | | | | | | | | Also change naming scheme of plugins: buffer integrations doesn't start with "wayland-" but the platform plugins have to start with "wayland-". Also update the README Change-Id: I6dd2103ab287ed569ab06cfb6eb469e3db058831 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Fixup for GLX integrationJorgen Lind2014-03-115-10/+17
| | | | | Change-Id: I2de94481f7d3e109fdce7ca961f8969299cf5d9e Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Making the buffer intgrations privateJorgen Lind2014-02-115-26/+26
| | | | | Change-Id: Ifb6e2456c781e80f84e27e68c3e279ea993f9307 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Merge remote-tracking branch 'origin/stable' into devAndy Nichols2014-02-044-14/+15
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/client/hardwareintegration/qwaylandclientbufferintegrationplugin_p.h src/client/hardwareintegration/qwaylandserverbufferintegrationplugin_p.h src/compositor/hardware_integration/qwaylandclientbufferintegrationplugin.h src/compositor/hardware_integration/qwaylandserverbufferintegrationplugin.h src/plugins/hardwareintegration/client/brcm-egl/main.cpp src/plugins/hardwareintegration/client/drm-egl-server/main.cpp src/plugins/hardwareintegration/client/wayland-egl/main.cpp src/plugins/hardwareintegration/client/xcomposite-egl/main.cpp src/plugins/hardwareintegration/client/xcomposite-glx/main.cpp src/plugins/hardwareintegration/compositor/brcm-egl/main.cpp src/plugins/hardwareintegration/compositor/drm-egl-server/main.cpp src/plugins/hardwareintegration/compositor/wayland-egl/main.cpp src/plugins/hardwareintegration/compositor/xcomposite-egl/main.cpp src/plugins/hardwareintegration/compositor/xcomposite-glx/main.cpp Change-Id: I9a9b418075970dd334babc3590b9b0315c2afb0d
| * Fixup the iid versions for the pluginsJorgen Lind2014-01-2010-10/+10
| | | | | | | | | | Change-Id: Iac1b8b070d3bf87b29d0be9a2a76fd56e7046f0f Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * Fix brcm keysLaszlo Agocs2014-01-161-2/+2
| | | | | | | | | | | | | | Did not match the key used in the plugin metadata. Change-Id: I58cf08c684b33d8d7166a074dbafb4187b010498 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
| * Fixup the brcm-egl hardware integrationsJorgen Lind2014-01-153-9/+10
| | | | | | | | | | Change-Id: I2a25c7d0b5019c30f31cba1f608a8731be6b1f10 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * Make the glx backend compile againJorgen Lind2014-01-101-3/+3
| | | | | | | | | | | | | | Still needs some renaming and verification, but this makes it compile at least Change-Id: Ifb7fc68e8705f235bf0edf2ae9bb38274b693d3c Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Fixup plugin interface versioningJorgen Lind2014-01-106-6/+6
| | | | | | | | | | Change-Id: Ia4ab692fde0dee9224c9c0e3204cfee56144b50f Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Merge remote-tracking branch stable into devAndy Nichols2014-01-09151-12524/+787
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/compositor/hardware_integration/qwaylandclientbufferintegrationplugin.h src/plugins/hardwareintegration/compositor/brcm-egl/main.cpp src/plugins/hardwareintegration/compositor/wayland-egl/main.cpp src/plugins/hardwareintegration/compositor/xcomposite-egl/main.cpp src/plugins/hardwareintegration/compositor/xcomposite-glx/main.cpp src/plugins/platforms/qwayland-brcm-egl/main.cpp src/plugins/platforms/qwayland-egl/main.cpp src/plugins/platforms/qwayland-generic/main.cpp src/plugins/platforms/qwayland-xcomposite-egl/main.cpp src/plugins/platforms/qwayland-xcomposite-glx/main.cpp Change-Id: I957c9bee893a9e19fc8c93f0e51292007fb3a4a8
| * Config test for drm_egl_serverJorgen Lind2014-01-062-6/+5
| | | | | | | | | | | | Change-Id: Ib0ae4683374c2fd0c7386863ffb3c207605dc1e2 Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * Make classes in client privateJorgen Lind2013-12-276-6/+6
| | | | | | | | | | Change-Id: Ibf400b32f78a6a0fcf0991914d2d9ad684483979 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
| * Add drm-egl server buffer integrationJorgen Lind2013-12-278-0/+188
| | | | | | | | | | Change-Id: Ib72cb43e78c068ebafa8c4e8ef1576746c7015e8 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
| * fixup for brcmJorgen Lind2013-12-271-4/+1
| | | | | | | | | | Change-Id: I7bb7a4f7eec76044ebaa92c7a31be1ff2df8ff0e Reviewed-by: Andy Nichols <andy.nichols@digia.com>
| * Adjust the location of the compositors clientbuffer integration pluginsJorgen Lind2013-12-274-4/+4
| | | | | | | | | | Change-Id: I85b293c981f9caf1bf9de34a54df7668198e2c7e Reviewed-by: Andy Nichols <andy.nichols@digia.com>
| * introduce HW integrations client pluginsJorgen Lind2013-12-2713-14/+371
| | | | | | | | | | Change-Id: I07bdcf8db16741291b88084f045ae7b93a89b63f Reviewed-by: Andy Nichols <andy.nichols@digia.com>
| * Change constructor of QWaylandClientBufferIntegrationJorgen Lind2013-12-272-4/+6
| | | | | | | | | | | | | | | | | | For QWaylandClientBufferIntegrations to be loadable from plugins the constructor shold not take any arguments, but give the display in the initialize function Change-Id: Ie38555120d7f29c6ba7eef0f095837235782684d Reviewed-by: Andy Nichols <andy.nichols@digia.com>
| * Rename QWaylandGLIntegration to QWaylandClientBufferIntegrationJorgen Lind2013-12-274-80/+13
| | | | | | | | | | | | | | also add a factory to load QWaylandClientBufferIntegrationPlugins Change-Id: Ia6a03627659b0452439ae664fceef21eaf0f6de0 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
| * Compositor: rename QWaylandGraphicsHardwareIntegrationJorgen Lind2013-12-274-26/+27
| | | | | | | | | | | | | | | | | | | | to QWaylandClientBufferIntegration. I have checked this with xcomposite-egl and wayland-egl, abd have tried to do a simple search and replace for brcm-egl and xcomposite-glx, but there will likely be some small fixup needed Change-Id: I48d284b8a5172273e0a26443074a87a8171b9e88 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
| * make compositor build with new directory layoutJorgen Lind2013-12-2737-1735/+90
| | | | | | | | | | Change-Id: I3ede73420af9cb95820a9bec4fe7305f1107e22d Reviewed-by: Andy Nichols <andy.nichols@digia.com>
| * Move to new hardware structure for the platform pluginsJorgen Lind2013-12-2745-2961/+200
| | | | | | | | | | Change-Id: I0d383e4cdd59c4e4eae5506c814f0c80ecbf58ae Reviewed-by: Andy Nichols <andy.nichols@digia.com>
| * Move wayland into a client directory not under the plugins src folderJorgen Lind2013-12-2763-8436/+7
| | | | | | | | | | | | | | | | | | And make wayland common files into a library, exporting all classes. Now there is no need to do bulild hacks to make your own version of the wayland plugin. Change-Id: Ib4872863dfb5ab3f2bc0f4a94ae16fc1e7b63b88 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
| * Implement keyboard auto-repeatGiulio Camuffo2013-12-232-9/+49
| | | | | | | | | | | | | | | | | | | | Wayland does not send auto-repeat key events, so the clients must implement it themselves. The times used here are taken from Weston's toy toolkit implementation. Change-Id: I13ec7799672ee5ca2904c9b18ac5ec0c8816d6fc Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
| * Fix decoration behavior when passing over with button pressedGiulio Camuffo2013-12-231-0/+1
| | | | | | | | | | | | | | | | | | Fix the decoration resizing or moving the window when passing over it with the mouse button pressed, but which was not clicked over the decoration. Change-Id: If5d1d041ae6f80a07ce83bdca92dab35f721f2eb Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
| * Wayland supports multiple windows.Shawn Rutledge2013-12-181-0/+3
| | | | | | | | | | | | | | | | | | | | After this, QtQuick.Dialogs for example will use widget-based dialogs instead of in-scene QML items. Change-Id: I3ada4c59fc6ae40d4eb6d3eb3bde70e546d96e6d Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
| * Fix initialization of a text input manager pointerMichael Krasnyk2013-12-161-0/+1
| | | | | | | | | | | | Change-Id: I0a7494ea44c8b3179a9daf10efa6e00fa21fa491 Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com> Reviewed-by: Andrew Knight <andrew.knight@digia.com>
| * QtCompositor: Allow key events to be delivered to unfocused windowsAndrew den Exter2013-12-162-22/+25
| | | | | | | | | | | | | | | | | | Adds an overload to QWaylandInput::sendFullKeyEvent which allows specifying the surface to deliver the event to. This also extends the Qt keyboard extension to allow sending keys to specific windows. Change-Id: I1b7abdc4d8a30392ef2e7ee5e9af5b3036b23577 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * InputMethod extension fixupsAndrew Knight2013-12-161-0/+1
| | | | | | | | | | | | | | | | Add a missing slot decorator and a missing return statement. Change-Id: Iad7944b1b9d35ce45818d3be418dc897d7deed69 Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * Link against glib if necessary.Robin Burchell2013-12-111-1/+2
| | | | | | | | | | | | Change-Id: Ie0f87c24d15a6784cc9ed1201d3578ffbf94d191 Done-with: Carsten Munk <carsten.munk@jollamobile.com> Reviewed-by: Andrew Knight <andrew.knight@digia.com>
| * Pass full screen method constant name instead of valuePier Luigi Fiorini2013-12-101-1/+1
| | | | | | | | | | | | | | Minor change but it makes the code more readable. Change-Id: I89206e519daec9c1d7fc2b5e716943396e6ea76b Reviewed-by: Andrew Knight <andrew.knight@digia.com>
| * Build fix for platforms without xkbcommon.hDominik Holland2013-12-101-0/+6
| | | | | | | | | | | | Change-Id: Id08b16326575f93891e880afbe22dc034062a9af Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * Fix the override of glBindFrameBufferObject when parameter is 0Jorgen Lind2013-11-282-6/+13
| | | | | | | | | | | | | | and fix a couple of warnings Change-Id: I77b692ea66df0f692017c3d16660701c09297e1d Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>