| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Use logging categories, and print error code when eglInitialize fails.
Change-Id: Iacba3b74a5dad23aba2309919fac7662967c94d7
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
wayland-client.h and wayland-server.h includes protocol generated for the
version of wayland.xml corresponding to the libwayland version. This becomes a
problem when we want to support a version of wayland.xml that's newer than the
system libwayland.
The solution is to include wayland-client-core.h and wayland-client-server.h
instead. These headers don't include any wayland-scanner generated code, so we
can safely compile and link code generated against the version of wayland.xml
that we ship.
[ChangeLog] Code generated by qtwaylandscanner now includes
wayland-client-core.h and wayland-server-core.h instead of wayland-client.h and
wayland-server.h. This might break source compatibility for code using custom
wayland extensions.
Fixes: QTBUG-70553
Change-Id: Ice0cdb60ecc4f936acc0e158b96f7978549f62c1
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\
| |
| |
| | |
Change-Id: I4bd7389958fcee8b16d131625280c7d125894212
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If makeCurrent was called before the window was exposed, it would disable
resizing, which would block the window from applying the configure which the
client needs to ack in order to be exposed.
Fixes the issue by locking resizing only if the window is exposed.
Change-Id: I0e6b30bc4b08886fb95d502cac0b735d4bb732d2
Fixes: QTBUG-70646
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I27420ad626a0c6a18b9a11c6ffdc102006fe78e0
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QOpenGLContext::makeCurrent no longer sets the current context before calling
the platform function.
Task-number: QTBUG-70511
Change-Id: I67766d43b1142b0742f655b5c2728f4c87fbfb5f
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I40724946222f7e51b3cf36a2ce1cd60d7801f41a
|
| |
| |
| |
| |
| | |
Change-Id: I215db1d8bb321e0fe9d49d09c8b5f0d2492e901d
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][QPA plugin] Fixed a bug where offscreen surfaces would get
surfaceless EGL contexts.
Fixes a regression in in bf09c7a1.
The call, window->updateSurface(window->isExposed()), is problematic because
offscreen textures are never exposed, and consequently, eglSurface will be
EGL_NO_SURFACE, which will then create a surfaceless context in the call:
eglMakeCurrent(m_eglDisplay, eglSurface, eglSurface, m_context)
This reverts to the old behavior of always trying to create an EGL surface,
unless the window doesn't have a valid wl_surface, in which case it doesn't
make sense (which is what bf09c7a1 fixed, QTBUG-65553).
Task-number: QTBUG-70242
Task-number: QTBUG-68605
Task-number: QTBUG-67601
Change-Id: I44b07bb8bf4b33c73c6379a1de8e9e5cfd220b51
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|/
|
|
|
| |
Change-Id: Ie8b76534a1c7904abd6b2e1e594174004847b28c
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
| |
Commit 815206 fixed renderableType of wayland gl context, keep
for sanity also correct renderableType for surface. This is most likely
never used, but makes more sense to keep it in sync.
Change-Id: I8e8cae1feba20054aac94be246e449ccb0974240
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
When creating gl context with egl pass reference format
[ChangeLog][QPA plugin] Fixed a bug where
QSurfaceFormat::renderableType() was ignored when creating an OpenGL
context.
Change-Id: Id7ae55413b8b515e344e9147345631186bef6d6c
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-63411
Change-Id: I56c367a1801d215e93bf195332272cfee300cdd8
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
| |
Context creation would sometimes fail because of this.
Change-Id: Icf73a42ee2bb984ebfc09b7ed98f094d544134b8
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Applied automatic fixes using clang-tidy's modernize-use-override.
This adds the "override" keyword where it's possible and also removes the
"virtual" keyword when redundant.
Change-Id: I899950e5cf8782785d30a245a9c69c1720905d50
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
| |
Initialize to nullptr to prevent undefined behavior.
Change-Id: I7753c0be77a886d62ecb1cd7b86fc8c98340b0b8
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
clang-tidy -p compile_commands.json $file \
-checks='-*,modernize-use-default-member-init,readability-redundant-member-init' \
-config='{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: "1"}]}' \
-header-filter='qtwayland' \
-fix
Afterwards I ran search and replace on the diff to clean up some whitespace errors:
- Replaced '(\n\+[^:\n]*)(:\s+\+\s+)' with '$1: '
- Replaced '(\n\+[^,\n]*)(,\s+\+\s+)' with '$1, '
- Replaced '\n\+\s*\n' with '\n'
I also had to do some manual edits, because for some reason, this particular
clang-tidy check doesn't trigger for some files.
Change-Id: I3b3909bac4bf20108bbe8ad1e01bcc54236dae1b
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|\
| |
| |
| | |
Change-Id: I603cbb164e6015c1bb7796bd8bb055d84dbc3b04
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QWaylandEglWindow deletes surfaces when a window changes from hidden to
visible, presumably as a result of us not having a valid wl_surface
object. By extension it doesn't make sense to create a surface whilst a
window is still hidden.
This fixes a crash where a QQuickWindow hides and then is destroyed. In
QQuickWindow destruction we have to create a valid context in order to
delete any textures/assets owned by the scene graph; as the wl_surface
has gone this causes an error in the EGL libs when we create an EGL
surface.
Task-number: QTBUG-65553
Change-Id: I9b37a86326bf2cd7737c4e839c1aa8c74cf08116
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I99198d47eac5b2091fe2bfd8fc24646be9c9890a
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|/
|
|
|
|
|
| |
Change-Id: I9699a957430b8d3574ce29acb91b7ada9ea6209b
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
src/hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.h
Change-Id: Ie45a13d3c866d0503e6e31b2a53b70f3420c5066
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The 5.7 refactoring for QOpenGLFunctions introduced new requirements for the
QPlatformGLContext::getProcAddress implementations. Implementations outside of
qtbase were unfortunately forgotten. QtWayland's implementation does not derive
from the common EGL version so it needs its own patch.
Task-number: QTBUG-57326
Change-Id: Ie2ad22bf5986870aac74adc1e4c654c616091034
Reviewed-by: Risto Avila <risto.avila@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|/
|
|
|
| |
Change-Id: I16b7b23efe944b49d1fcc9e7588cdb0a991cebd1
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
| |
Get rid of almost all DEFINES += ... in the pro files,
instead use the proper QT_CONFIG() macro to determine
whether a feature is available.
Change-Id: I867769be2085c6ba93b6815e223e2b89edcb245d
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I7883470e22deb089240d86df7dc2d625a107a53e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
| |
Have to adapt after the changes in qtbase
Task-number: QTBUG-55140
Change-Id: I5b5c981514c7ea2898c631db579d4d7d43975e3d
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So just use the typedef that QPlatformOpenGLContext defines for a
function pointer.
qwaylandglcontext.h(76): error: expected a ";"
Intel Issue ID: 6000161944
Change-Id: I149e0540c00745fe8119fffd1463ce5c4ffdeb4c
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/client/qwaylandinputcontext_p.h
src/hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.h
src/hardwareintegration/client/wayland-egl/qwaylandglcontext.h
src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxcontext.h
Change-Id: Iac517e1985e4e67d7ca00ca4c10dcda9dd9079f9
|
| |
| |
| |
| |
| |
| | |
Change-Id: I10e550a25ce498bbeedc242ac73059cc6fdcef30
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@hawaiios.org>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Only the width and height were scaled previously, causing an incorrect
offset from the lower left corner, resulting in a small transparent gap
to form between the decoration and the content on the right and top.
Change-Id: I0b253c05c9b260d9ff3a6ab5f8aea42370561959
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This allows to avoid polluting the environment with the EGL_PLATFORM
variable, and conversely to avoid relying on it and still be sure to
get a valid display.
Change-Id: I3dd4b62b1358fdc0ba8a5cedb1233e13405611df
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QOpenGLContext changed the getProcAddress overload to use const char*
instead of QByteArray in commit (qtbase
29d8159c4478a5275d2ea102daf270a91ed7e92e).
Change-Id: Idce613ebd06daeb111fd76ebee89a82182d028d5
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some embedded SDKs will not have pkg-config available for Wayland.
Hence we need to keep the manual LIBS+=... path functional.
Change-Id: I3815267254ce5c137918e817ade434cffba9f20b
Reviewed-by: Erik Larsson <erik@ortogonal.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
This introduces the new compositor API, removing the
old API (which was never officially supported).
Change-Id: I1dc01f0fb4edc749e34ed8356e56ad87d7d64913
|
| |\|
| | |
| | |
| | | |
Change-Id: Ie70fdd03e1259a8cb75bbdbf1324e3e4a2b51807
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: I09f34fe3ea6bb3b57e49c63284f48d8af908ec1a
|
|\ \ \ \
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/client/qwaylanddisplay_p.h
Change-Id: I602b90a055d1322af369fb7b77a68583154b660f
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
Allows clients that use subsurfaces in synchronized mode to continue
processing the event loop even in cases where a frame callback is not
delivered from the compositor pending a parent surface commit
Change-Id: I7df38afc4080546b60184dacecde321ba8062fac
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
|/
|
|
|
|
|
|
|
|
|
|
| |
When hiding a window we attach a NULL buffer, which means that any
frame callback that is still waiting will not be sent. In the SHM
case we just destroy it, but we cannot do that in the EGL case, since
we don't have a hold of it. So destroy the EGLSurface, which will
in turn destroy the callback.
Task-number: QTBUG-46921
Change-Id: I20e0d1ca7b53fb88096101d46979996dd944d429
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
| |
eglBindAPI's docs says "defines the current rendering API for EGL in the
thread it is called from". We were instead just calling it in the thread
the context was created in, not in the thread used for rendering.
Change-Id: Iba8ffe75a6f4f8b9d1bba59c0e7cce34499e9c48
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Wayland 1.2 added support for display scaling, where wl_output
has a "scale" event informing the the client that the compositor
will scale the output surfaces by the given factor. The client
then has the option of providing large surfaces to match the
target pixel densety and bypass the compositor's scaling. This
is done by calling wl_surface::set_buffer_scale.
Re-use the current high-dpi support in Qt by implementing
devicePixelRatio() for QWaylandScreen and QWaylandWindow.
Provide high resolution buffers both for raster and OpenGL
graphics.
Introduce a new coordinate system: buffer coordinates, which
is related to the window coordinate system via an "int scale"
scale factor. This scale factor corresponds to Qts qreal
devicePixelRatio, but we keep the name and the type in the
QtWayland implementation.
Change-Id: Ie10d7e5b4833480a9a25d96a26ad02150eb6e83f
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
|
|
|
|
|
|
|
|
| |
The native resource getters that are supported by eglfs will have to be
supported by the wayland platform plugin too. (on wayland-egl at least)
Change-Id: Ibbab649c04785dbde177342c45b9bc6f1edd954d
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
|