summaryrefslogtreecommitdiffstats
path: root/src/plugins/shellintegration/ivi-shell/qwaylandivisurface_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.8' into devLiang Qi2017-01-251-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf examples/wayland/custom-extension/client-common/main.cpp src/client/qwaylandwlshellintegration_p.h src/client/qwaylandxdgshellintegration_p.h src/compositor/compositor_api/qwaylandquickoutput.h src/plugins/shellintegration/ivi-shell/qwaylandivisurface_p.h Change-Id: Ic78c610ddf102b0a185294f625bbfcb9238b0f3c
| * Replace all occurrences of Q_DECL_OVERRIDE with overrideJohan Klokkhammer Helsing2017-01-231-1/+1
| | | | | | | | | | Change-Id: I16b7b23efe944b49d1fcc9e7588cdb0a991cebd1 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Change QWindow::visible when surface visibility in ivi shell is changedTasuku Suzuki2016-11-241-0/+1
|/ | | | | | Change-Id: I2c2debe47fcb173f02aef5f4e60e52c35ad7b395 Reviewed-by: Yusuke Binsaki <yusuke.binsaki@itage.co.jp> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Create and destroy the shell surface when showing and hidingGiulio Camuffo2016-11-171-0/+2
| | | | | | | | | | | | | | | | | | This changes the shell surface handling for windows, and instead of creating the shell surface at initialization time, and then attaching a null buffer to hide it, it creates the shell surface on setVisible(true), and destroys it on setVisible(false). This fixes hiding when using xdg_shell, as that interface defines that attaching a null buffer to an xdg_surface is an error. Also this should help with bugged EGL drivers which attach a buffer after eglSwapBuffers() returns, which used to cause a newly hidden window to get a new valid buffer after we attached a null one, showing it again. Task-number: QTBUG-47902 Change-Id: I8e0a0442319a98cc1361803ea7be1d079b36fc8c Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Implement initial IVI-shell support with shell integration.Yusuke Binsaki2016-02-121-0/+71
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>