qtwayland: add second recipe with latest SRCREV, compatible with qt5 5.1.0

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Martin Jansa 2013-07-20 14:39:37 +02:00
parent 507c7466ea
commit 5eb22ffbfa
12 changed files with 177 additions and 7 deletions

View File

@ -0,0 +1,46 @@
From 7f97da120b5b3dde22c9d89a8da8a4f35a9f2a26 Mon Sep 17 00:00:00 2001
From: Mikko Levonmaa <mikko.levonmaa@palm.com>
Date: Tue, 19 Feb 2013 11:16:05 -0800
Subject: [PATCH 1/3] xcbcommon should not be a mandatory dependency
Not all platforms that use qtwayland depend on xcbcommon to be present
for them to be functional
This change won't be needed when this commit from dev branch is merged
to stable:
commit 894adf8a447865119be7c6c4d01577d8032f4177
Author: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Date: Mon Apr 8 12:54:58 2013 +0200
make failure to configure wayland non-fatal for a top-level build of qt
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
qtwayland.pro | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/qtwayland.pro b/qtwayland.pro
index 24e104b..66dd38a 100644
--- a/qtwayland.pro
+++ b/qtwayland.pro
@@ -11,7 +11,7 @@ qtCompileTest(xcomposite)
load(qt_parts)
!config_wayland {
- error(QtWayland requires Wayland 1.0.3 or higher)
+ error("QtWayland requires Wayland 1.0.3 or higher")
}
!config_xkbcommon {
@@ -19,7 +19,7 @@ load(qt_parts)
}
!config_wayland_scanner {
- error(QtWayland requires wayland-scanner)
+ error("QtWayland requires wayland-scanner")
}
!config_wayland_egl {
--
1.8.2.1

View File

@ -0,0 +1,33 @@
From 5b7c89d211a193acfd182eb0519b658629af3193 Mon Sep 17 00:00:00 2001
From: Mikko Levonmaa <mikko.levonmaa@palm.com>
Date: Fri, 1 Mar 2013 13:00:53 -0800
Subject: [PATCH 2/3] Temporarily patching this out as Qt5.0.0 does not have
qtHaveModule
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
src/compositor/compositor_api/compositor_api.pri | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/compositor/compositor_api/compositor_api.pri b/src/compositor/compositor_api/compositor_api.pri
index f0bbe76..e7905e5 100644
--- a/src/compositor/compositor_api/compositor_api.pri
+++ b/src/compositor/compositor_api/compositor_api.pri
@@ -12,7 +12,7 @@ SOURCES += \
QT += core-private
-qtHaveModule(quick) {
+#qtHaveModule(quick) {
SOURCES += \
compositor_api/qwaylandsurfaceitem.cpp \
compositor_api/qwaylandsurfacenode.cpp \
@@ -27,4 +27,4 @@ qtHaveModule(quick) {
QT += qml quick
QT += quick-private gui-private
-}
+#}
--
1.8.2.1

View File

@ -0,0 +1,71 @@
From 2d707f8dc9f0658d889aef4f4c5a62595598402c Mon Sep 17 00:00:00 2001
From: Mikko Levonmaa <mikko.levonmaa@palm.com>
Date: Wed, 6 Mar 2013 10:18:49 -0800
Subject: [PATCH 3/3] eglCreateImageKHR requires the context to be NULL
As per the EGL spec the context passed to that function should
be null.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
.../wayland-egl/waylandeglintegration.cpp | 16 ++--------------
1 file changed, 2 insertions(+), 14 deletions(-)
diff --git a/src/plugins/waylandcompositors/wayland-egl/waylandeglintegration.cpp b/src/plugins/waylandcompositors/wayland-egl/waylandeglintegration.cpp
index 73877c4..16e77fb 100644
--- a/src/plugins/waylandcompositors/wayland-egl/waylandeglintegration.cpp
+++ b/src/plugins/waylandcompositors/wayland-egl/waylandeglintegration.cpp
@@ -101,7 +101,6 @@ public:
PFNGLEGLIMAGETARGETTEXTURE2DOESPROC gl_egl_image_target_texture_2d;
- QPlatformNativeInterface::NativeResourceForContextFunction get_egl_context;
};
WaylandEglIntegration::WaylandEglIntegration()
@@ -121,10 +120,6 @@ void WaylandEglIntegration::initializeHardware(QtWayland::Display *waylandDispla
const char *extensionString = eglQueryString(d->egl_display, EGL_EXTENSIONS);
if (extensionString && strstr(extensionString, "EGL_WL_bind_wayland_display"))
{
- d->get_egl_context = nativeInterface->nativeResourceFunctionForContext("get_egl_context");
- if (!d->get_egl_context) {
- qWarning("Failed to retrieve the get_egl_context function");
- }
d->egl_bind_wayland_display =
reinterpret_cast<PFNEGLBINDWAYLANDDISPLAYWL>(eglGetProcAddress("eglBindWaylandDisplayWL"));
d->egl_unbind_wayland_display =
@@ -137,7 +132,6 @@ void WaylandEglIntegration::initializeHardware(QtWayland::Display *waylandDispla
reinterpret_cast<PFNGLEGLIMAGETARGETTEXTURE2DOESPROC>(eglGetProcAddress("glEGLImageTargetTexture2DOES"));
if (d->egl_bind_wayland_display
- && d->get_egl_context
&& d->egl_unbind_wayland_display
&& d->egl_create_image
&& d->egl_destroy_image
@@ -162,10 +156,7 @@ GLuint WaylandEglIntegration::createTextureFromBuffer(wl_buffer *buffer, QOpenGL
return 0;
}
- QPlatformNativeInterface *nativeInterface = QGuiApplication::platformNativeInterface();
- EGLContext egl_context = d->get_egl_context(context);
-
- EGLImageKHR image = d->egl_create_image(d->egl_display, egl_context,
+ EGLImageKHR image = d->egl_create_image(d->egl_display, NULL,
EGL_WAYLAND_BUFFER_WL,
buffer, NULL);
@@ -229,10 +220,7 @@ void *WaylandEglIntegration::lockNativeBuffer(struct wl_buffer *buffer, QOpenGLC
{
Q_D(const WaylandEglIntegration);
- QPlatformNativeInterface *nativeInterface = QGuiApplication::platformNativeInterface();
- EGLContext egl_context = d->get_egl_context(context);
-
- EGLImageKHR image = d->egl_create_image(d->egl_display, egl_context,
+ EGLImageKHR image = d->egl_create_image(d->egl_display, NULL,
EGL_WAYLAND_BUFFER_WL,
buffer, NULL);
return image;
--
1.8.2.1

View File

@ -2,6 +2,8 @@ require qt5-git.inc
require ${PN}.inc
# qtwayland wasn't released yet, last tag before this SRCREV is 5.0.0-beta1
PV = "4.999+5.0.0-beta1+git${SRCPV}"
# this PV is only to indicate that this recipe is compatible with qt5 5.1.0
# while qtwayland_git stays compatible with 5.0.2
PV = "5.1.0+git${SRCPV}"
SRCREV = "ede872db1cdfdc2810c2dd29edd5fb6e1cdac0f5"

View File

@ -13,13 +13,10 @@ LIC_FILES_CHKSUM = "file://${S}/src/compositor/compositor_api/qwaylandsurfacenod
XKB_DEPENDS = "libxkbcommon xproto"
DEPENDS += "qtbase qtdeclarative wayland wayland-native ${XKB_DEPENDS}"
INC_PR = "r1"
SRC_URI += " \
file://0001-xcbcommon-should-not-be-a-mandatory-dependency.patch \
file://0002-Temporarily-patching-this-out-as-Qt5.0.0-does-not-ha.patch \
file://0003-eglCreateImageKHR-requires-the-context-to-be-NULL.patch \
file://0004-EGL-Specify-vec2d-precision-qualifier-in-fragment-sh.patch \
"
QT_WAYLAND_CONFIG ?= "wayland-compositor"

View File

@ -0,0 +1,15 @@
require qt5-git.inc
require ${PN}.inc
FILESEXTRAPATHS =. "${FILE_DIRNAME}/${BPN}-5.1.0+git:"
DEPENDS += "qtwayland-native"
# qtwayland wasn't released yet, last tag before this SRCREV is 5.0.0-beta1
# this PV is only to indicate that this recipe is compatible with qt5 5.1.0
# while qtwayland_git stays compatible with 5.0.2
PV = "5.1.0+git${SRCPV}"
# newer revisions depend on newer wayland-1.1 APIs
SRCREV = "87dba733acfddecd8562e8e26ce5f994aa499fe3"
# SRCREV = "ede872db1cdfdc2810c2dd29edd5fb6e1cdac0f5"

View File

@ -1,13 +1,19 @@
require qt5-git.inc
require ${PN}.inc
# qtwayland wasn't released yet, last tag before this SRCREV is 5.0.0-beta1
PV = "4.999+5.0.0-beta1+git${SRCPV}"
# qtwayland wasn't released yet, last tag before this SRCREV is 5.0.0-beta1,
# but we'll use 5.0.2+git to indicate this version is compatible with 5.0.2
PV = "5.0.2+git${SRCPV}"
PR = "${INC_PR}.1"
# drop when bumping SRCREV
PR = "r2"
SRCREV = "5cb159395eccb1d96fb73a78e499eef30aacb46d"
SRC_URI += " \
file://0004-EGL-Specify-vec2d-precision-qualifier-in-fragment-sh.patch \
"
do_configure_prepend() {
# Temporary hack to get qtwayland build for Qt 5.0.2
if ! grep -q MODULE_VERSION ${S}/.qmake.conf; then