summaryrefslogtreecommitdiffstats
path: root/examples/wayland/server-buffer
Commit message (Collapse)AuthorAgeFilesLines
* Fix namespaced buildsJohan Klokkhammer Helsing2017-09-181-0/+4
| | | | | | Change-Id: Iac3d7751b9c3a8c94ee87dbc4effcaceaf8a47dc Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Reintroduce the server-buffer examplePaul Olav Tvete2017-08-1616-0/+834
| | | | | | | | | | The old, non-functional server-buffer example was removed in change 69bbd62a3c93f8142f57ad764db29ecaabbb0ff7. This is a reimplementation of the old example, based on the new server buffer API, and using the current Qt Wayland Compositor API. Change-Id: Idc455eab070fce35c5897dc7be53002c1bb6147a Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Remove non-functional examplePaul Olav Tvete2017-04-2716-1227/+0
| | | | | | | | | | The server-buffer example does not work, and probably has not worked for a long time. This example was written for an early version of Wayland, and the APIs have changed since then. Change-Id: If647c7085aaaae87c06010bd28896fa8bfc4bdcc Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io> Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Replace all occurrences of Q_DECL_OVERRIDE with overrideJohan Klokkhammer Helsing2017-01-232-3/+3
| | | | | Change-Id: I16b7b23efe944b49d1fcc9e7588cdb0a991cebd1 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Move qtwayland over to use the new configuration systemLars Knoll2016-11-232-15/+0
| | | | | | | | | | | | | Re-use configuration results from qtbase where possible and move all pkg-config handling over to be done at configuration time. Since waylandclient and waylandcompositor are two independent libs, this required some duplication of features and libraries used by both in the configure.json files. Change-Id: I1f3ec56c85cb780324cc7634a3ad7951125853a0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Add mode support to QWaylandOutputPier Luigi Fiorini2016-10-031-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Outputs usually have more than one mode, add an API to support them. When sizeFollowsWindow is true, modes are replaced by one with the window size and refresh rate. In that circumstance the mode changes when the window is resized. The sizeFollowsWindow property default value is no longer true. The setGeometry() method is gone as it doesn't make sense now, the setWidth() and setHeight() methods are now private slots to resize the resolution as the window resizes (and sizeFollowsWindow is true). Refresh rate is expressed in mHz rather than Hz just like the Wayland protocol. A compositor implementation may choose to add modes if it has access to hardware information, it will call addMode() for each mode and then invoke the setCurrentMode() method that sends the modes list to the client. The preferred mode is indicated with a boolean parameter to the addMode() method. Change-Id: Iffed4784ccef695c276ebd800172957f4cff3324 Task-number: QTBUG-49814 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Rename QWaylandSurface::isMapped to hasContentJohan Klokkhammer Helsing2016-08-221-1/+1
| | | | | | | | | | | | | It was potentially misleading, since "mapped" is already used with a slightly different meaning in the Wayland protocol. In the protocol, mapped means that the surface should be rendered. The renamed property, on the other hand, is true if the surface has a buffer with contents attached and committed. In some cases this is not the same, i.e. the drag icon after dropping, or xdg_popups after popup_done. Change-Id: Idc359433c6130e3815de57b21d4edb13e318887d Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-193-1/+11
|\ | | | | | | | | | | | | | | | | Conflicts: .qmake.conf examples/wayland/qml-compositor/qml-compositor.pro examples/wayland/server-buffer/compositor/compositor.pro Change-Id: Ie6fa21dfbdb71f33e0a4d29d34a824048cf00864
| * fix example installsv5.6.1-1v5.6.1Oswald Buddenhagen2016-04-283-0/+10
| | | | | | | | | | | | | | | | | | this actually includes removing the install targets for the sources - this is automated now. Change-Id: I736958d70baabfa4db816abbfc50acacbf2ee23c Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
| * Fix build without pkg-configLaszlo Agocs2015-10-192-5/+7
| | | | | | | | | | Change-Id: I9217c633bcbecd330715b6dbc654245b3fb739a8 Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
* | Fix broken qml import in server-buffer exampleJohan Klokkhammer Helsing2016-03-021-1/+1
| | | | | | | | | | Change-Id: Iae5fdae99a2e81b246feca2b7b511e794b23f253 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* | Example project file clean-upsLouai Al-Khanji2015-10-232-12/+17
| | | | | | | | | | | | | | Make things compile without pkg-config, remove obsolete bits. Change-Id: I9adb2653c80d519dad371b9b982826c6c41e3cb5 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Merge branch 'qt/5.6' into wip-compositor-apiPaul Olav Tvete2015-10-131-1/+0
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/wayland/pure-qml/main.cpp examples/wayland/pure-qml/qml/Chrome.qml examples/wayland/pure-qml/qml/main.qml src/client/qwaylanddnd_p.h src/compositor/compositor_api/qwaylandquicksurface.cpp src/compositor/compositor_api/qwaylandsurface_p.h src/compositor/compositor_api/qwaylandsurfaceitem.cpp src/compositor/extensions/qwlinputmethodcontext_p.h src/compositor/hardware_integration/qwlclientbufferintegration_p.h src/compositor/hardware_integration/qwlclientbufferintegrationfactory_p.h src/compositor/hardware_integration/qwlclientbufferintegrationplugin_p.h src/compositor/hardware_integration/qwlhwintegration_p.h src/compositor/hardware_integration/qwlserverbufferintegrationfactory_p.h src/compositor/hardware_integration/qwlserverbufferintegrationplugin_p.h src/compositor/wayland_wrapper/qwlcompositor_p.h src/compositor/wayland_wrapper/qwldatadevice_p.h src/compositor/wayland_wrapper/qwldatadevicemanager_p.h src/compositor/wayland_wrapper/qwldatasource_p.h src/compositor/wayland_wrapper/qwlextendedsurface_p.h src/compositor/wayland_wrapper/qwlinputdevice_p.h src/compositor/wayland_wrapper/qwlinputmethod_p.h src/compositor/wayland_wrapper/qwlinputpanel_p.h src/compositor/wayland_wrapper/qwlinputpanelsurface_p.h src/compositor/wayland_wrapper/qwlkeyboard.cpp src/compositor/wayland_wrapper/qwlkeyboard_p.h src/compositor/wayland_wrapper/qwloutput_p.h src/compositor/wayland_wrapper/qwlpointer_p.h src/compositor/wayland_wrapper/qwlregion_p.h src/compositor/wayland_wrapper/qwlshellsurface_p.h src/compositor/wayland_wrapper/qwlsubsurface_p.h src/compositor/wayland_wrapper/qwlsurface.cpp src/compositor/wayland_wrapper/qwlsurface_p.h src/compositor/wayland_wrapper/qwltextinput_p.h src/compositor/wayland_wrapper/qwltextinputmanager_p.h src/compositor/wayland_wrapper/qwltouch_p.h src/compositor/windowmanagerprotocol/waylandwindowmanagerintegration_p.h src/imports/compositor/WaylandCursorItem.qml Change-Id: I4e63ef295b297022d4970b3c68b3d565843086bd
| * Fix possible race condition leading to a dead lockGiulio Camuffo2015-07-061-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | It is a bit dangerous to call wl_display_dispatch() in the event thread, since it may race with the dispatch called e.g. in QWaylandDisplay's blockingReadEvents() and lead to a dead lock. Instead, use wl_display_prepare_read() and wl_display_read_events() in the event thread, which doesn't block, and only dispatch in QWaylandDisplay. As a result we don't need the additional wayland queue anymore, so remove it. Change-Id: I9fbbe5d2f38d06773beb7847df1a0212cca92c37 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | Remove the QWaylandOutputSpaceJørgen Lind2015-09-181-2/+1
| | | | | | | | | | | | | | | | We don't need this abstraction anymore since we don't have global coordinates in the core api anymore Change-Id: I553a736a0e71026447d6a0af3f8a64607b8c8f06 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* | Rename QtCompositor to QtWaylandCompositorJørgen Lind2015-09-103-7/+7
| | | | | | | | | | | | | | enable building QtWaylandCompositor by default Change-Id: I7cf34052b304ca9fef55b7e30ef6a6367b5d75f1 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | Rename primary(Output|OutputSpace) to default(Output|OutputSpace)Jørgen Lind2015-09-041-2/+2
| | | | | | | | Change-Id: I0bbe6dd6bd8e9f6972cc88b832029ac98aa2af49
* | Make it possible to construct QWaylandOutputJørgen Lind2015-09-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This requires QWaylandOutput to be initialized. This will happend when the QWaylandCompositor of the QWaylandOutputSpace that is set on the QWaylandOutput is created. QWaylandCompositor will send or post a Polish event to the QWaylandOutput which again will call QWaylandOutput::initialize. This function will create the global that will be put on the wl_displays registry This makes it possible to Create WaylandOutputs in QML (see the pure-qml example) and also gives a better programming model in C++ Change-Id: Iaf907ae18a283678eda6d04390dc9790ae0bced8
* | Make Manufacturer & Model modifiable properties of QWaylandOutputJørgen Lind2015-09-021-1/+1
| | | | | | | | | | | | This to make construction look nicer and make them modifyable from QML Change-Id: I5f5ffffb34f664914cdb531736c42a6873bfe18c
* | Make the default wl_shell available from QMLJørgen Lind2015-08-281-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This finaly ties together how to use QWaylandQuickItems with different shells It was required to decouple QWaylandView from the QWaylandQuickItem since QML doesn't play to well with muliple inheritance. The QWaylandQuickItem can be retrieved from the QWaylandView which is now conveniently a QObject. Also the QWaylandQuickItem owns the QWaylandView. This architecture also leaves room for creating a QWaylandWidget :) Change-Id: Ib8a00e6f17f0f1bfc3ff244753f021c76db22cb1
* | Remove automatic initialisation of extensionsJørgen Lind2015-08-281-2/+0
| | | | | | | | | | | | | | | | | | | | It is the specific compositor application responsibillity to create the specific extensions. Some of the extensions are picked up with the QWaylandExtension::findIn(QWaylandExtensionContainer *) function to work around missing events/apis. It should be a goal not to have these calles in the base implementation of QWayland[Compositor|Surface|Input..]. Change-Id: Iacd576f2e8a79ca0165b858b1e8f44cddad48d93
* | Remove QtWayland::Compositor and add QWaylandCompositorPrivateJørgen Lind2015-08-281-4/+5
| | | | | | | | | | | | Embrace PIMPL Change-Id: I8c8b5971e15c208317ff33231bda1513e7b8d489
* | Remove some deprecated apisJørgen Lind2015-08-281-1/+1
| | | | | | | | Change-Id: I6a0f68fa6c8fb79cd81daf1315c2b3b041a25de2
* | Fix missing file rename from QWayalandQuickView -> ....ItemJørgen Lind2015-08-281-1/+1
| | | | | | | | Change-Id: I12a12c3f476d223dc278c34ab1a9a39cc5b5f9e5
* | Remove the default shell functionalityJørgen Lind2015-08-281-1/+1
| | | | | | | | | | | | | | | | This will be readded in a different way. Also, remove the WaylandSurfaceChrome since it is no longer needed, and just use WaylandView directly Change-Id: I8d4a7b2135d9fdaea7dd3fcd729e55cceebf48fb
* | Rename QWaylandQuickView to QWaylandQuickItemJørgen Lind2015-08-281-2/+2
| | | | | | | | | | | | | | | | | | QuickView is already used for something semantically different, lets stick with Item which is a subclass of QWaylandView A QWaylandView is a view of a surface.... Change-Id: I75975485e7b5fb66444fe9fe400effb124882d32
* | Rename QWaylandSurfaceView to QWaylandViewJørgen Lind2015-08-281-3/+3
| | | | | | | | | | | | and rename QWaylandSurfaceItem to QWaylandQuickView Change-Id: I989b482eb79df06e9f265bc2b0ef6b3dce7509d6
* | Rework how we manage extensionsJørgen Lind2015-08-281-1/+2
| | | | | | | | Change-Id: If2cbf096e7419bc1bda007d5167ce39d1a5d50ae
* | Introducing QWaylandOutputSpaceJørgen Lind2015-08-281-2/+4
| | | | | | | | | | | | | | | | | | | | Its purpose is to make it possible to have multiscreen environments, and also multiple multioutput environments It is also an abstraction to make it clear that outputs are arranged in a 2d space Change-Id: I418509996a03b2ca1a12aec9c9e25e143a15a10f
* | Make QWaylandCompositor inherit QObjectJørgen Lind2015-08-281-27/+30
|/ | | | | | | | | | | | | | | | | And remove the constructor arguments, and just having parent as a constructor argument. This requires QWaylandCompositor to have a create semantic familiar from QWindow and QOpenGLContext. On create the native wayland socket is created and initialized. Also the virtual functions surfaceCreated and surfaceAboutToBeDestroyed have been converted to signals, removing the need to subclass QWaylandCompositor Examples have been changed to avoid having two super classes inheriting QObject. This is done by either making the QWindow subclass a member or making the QWaylandCompositor a member. Change-Id: I317d37e2adca15bfe4e1904e20ab0d83943b2d45
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-151-12/+0
|\ | | | | | | | | | | | | | | Conflicts: src/client/qwaylandshmbackingstore.cpp src/client/qwaylandwindow.cpp Change-Id: I795fd08f0fc5d3cb5ed55bf16e724f66b7567723
| * examples: remove unused windowDestroyed signalOlivier Blin2015-03-311-12/+0
| | | | | | | | | | | | | | | | | | | | | | Unused since commit fc439e40e37f9c0b3108225f951fb19bb3abee80 Rework the way buffers are used and rendered Also remove associated slots that are now empty in server-buffer. Change-Id: I33be0bc6a5e175553d28e9ead54fefd2f0c07ce0 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Update copyright headersJani Heikkinen2015-02-1710-40/+40
| | | | | | | | | | | | | | | | | | 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>
* | Add QWaylandOutput to support multiple outputsPier Luigi Fiorini2015-02-081-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new QWaylandOutput class to support multiple outputs. Each QWaylandOutput need a window for rendering. Rename OutputGlobal to Output and Output to OutputResource. Add support for physical size, mode and available geometry. Use better defaults for geometry and refreshRate from the QWindow if available. A window is no longer passed to QWaylandCompositor constructor and all output related methods are removed, however one or more outputs are required for hardware integration. QWaylandCompositor returns a list of outputs and offers an API to add or remove outputs. Hardware integrations can run headless. Change-Id: I742996571ddb78328f7bfa4f79b25a81995279e1 Done-with: Jan Arne Petersen <jan.petersen@kdab.com> Done-with: Jørgen Lind <jorgen.lind@theqtcompany.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Namespace the platform pluginsGiulio Camuffo2015-01-293-8/+8
|/ | | | | | | | | | | | 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>
* Correctly handle '--invert' parameter in server-buffer compositorSiteshwar Vashisht2015-01-131-2/+2
| | | | | Change-Id: I9a3285dc5bddd848ec557287c4641d9edce752a9 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* Move examples into wayland subdirectory.v5.4.0-beta1Friedemann Kleint2014-10-0916-0/+1237
Conforming to the Qt project directory structure. Change-Id: I452867fabc88e9594fa26f944b5d3e1ca4ffc720 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>