summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorgen Lind <jorgen.lind@gmail.com>2012-07-17 13:38:16 +0200
committerPaul Olav Tvete <paul.tvete@nokia.com>2012-07-17 16:53:32 +0200
commit32fdbf184b7478f83e4d6ff4dba3dbe150eb9e9b (patch)
tree1987cb730c7d3503951de36bbc7a3a9418350893
parent3ae60a1dbb397df2f293e62c3978c11a0d9c9453 (diff)
Config tests for gl integration
Change-Id: Ie7d80e7591d11aa5df87ca5d5de4cd6c03928c83 Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
-rw-r--r--config.tests/egl/egl.pro12
-rw-r--r--config.tests/egl/main.cpp47
-rw-r--r--config.tests/glx/glx.pro12
-rw-r--r--config.tests/glx/main.cpp50
-rw-r--r--config.tests/wayland_egl/main.cpp48
-rw-r--r--config.tests/wayland_egl/wayland_egl.pro12
-rw-r--r--config.tests/xcomposite/main.cpp48
-rw-r--r--config.tests/xcomposite/xcomposite.pro12
-rw-r--r--config.tests/xkbcommon/xkbcommon.pro3
-rw-r--r--qtwayland.pro4
-rw-r--r--src/compositor/hardware_integration/hardware_integration.pri49
-rw-r--r--src/plugins/platforms/wayland/gl_integration/gl_integration.pri81
12 files changed, 299 insertions, 79 deletions
diff --git a/config.tests/egl/egl.pro b/config.tests/egl/egl.pro
new file mode 100644
index 000000000..f95e3c761
--- /dev/null
+++ b/config.tests/egl/egl.pro
@@ -0,0 +1,12 @@
+TARGET = egl
+QT = core
+
+!contains(QT_CONFIG, no-pkg-config) {
+ CONFIG += link_pkgconfig
+ PKGCONFIG += egl
+} else {
+ LIBS += -lEGL
+}
+
+# Input
+SOURCES += main.cpp
diff --git a/config.tests/egl/main.cpp b/config.tests/egl/main.cpp
new file mode 100644
index 000000000..d97107b72
--- /dev/null
+++ b/config.tests/egl/main.cpp
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the Qt Compositor.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <EGL/egl.h>
+
+int main(int argc, char **argv)
+{
+ EGLDisplay display = eglGetDisplay(0);
+ return 0;
+}
diff --git a/config.tests/glx/glx.pro b/config.tests/glx/glx.pro
new file mode 100644
index 000000000..26f048f08
--- /dev/null
+++ b/config.tests/glx/glx.pro
@@ -0,0 +1,12 @@
+TARGET = glx
+QT = core
+
+!contains(QT_CONFIG, no-pkg-config) {
+ CONFIG += link_pkgconfig
+ PKGCONFIG += x11 gl
+} else {
+ LIBS += -lX11 -lGL
+}
+
+# Input
+SOURCES += main.cpp
diff --git a/config.tests/glx/main.cpp b/config.tests/glx/main.cpp
new file mode 100644
index 000000000..589b6c077
--- /dev/null
+++ b/config.tests/glx/main.cpp
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the Qt Compositor.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <GL/glx.h>
+
+int main(int argc, char **argv)
+{
+ Display *dpy = XOpenDisplay(0);
+
+ int items = 0;
+ GLXFBConfig *fbc = glXChooseFBConfig(dpy, DefaultScreen(dpy), 0 , &items);
+ return 0;
+}
diff --git a/config.tests/wayland_egl/main.cpp b/config.tests/wayland_egl/main.cpp
new file mode 100644
index 000000000..7abb159b4
--- /dev/null
+++ b/config.tests/wayland_egl/main.cpp
@@ -0,0 +1,48 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the Qt Compositor.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <wayland-egl.h>
+
+int main()
+{
+ struct wl_egl_pixmap *pm = wl_egl_pixmap_create(100,100,0);
+
+ return 0;
+}
diff --git a/config.tests/wayland_egl/wayland_egl.pro b/config.tests/wayland_egl/wayland_egl.pro
new file mode 100644
index 000000000..76d92b182
--- /dev/null
+++ b/config.tests/wayland_egl/wayland_egl.pro
@@ -0,0 +1,12 @@
+TARGET = wayland_egl
+QT = core
+
+!contains(QT_CONFIG, no-pkg-config) {
+ CONFIG += link_pkgconfig
+ PKGCONFIG += wayland-egl
+} else {
+ LIBS += -lwayland-egl
+}
+
+# Input
+SOURCES += main.cpp
diff --git a/config.tests/xcomposite/main.cpp b/config.tests/xcomposite/main.cpp
new file mode 100644
index 000000000..296b5a5df
--- /dev/null
+++ b/config.tests/xcomposite/main.cpp
@@ -0,0 +1,48 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the Qt Compositor.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <X11/extensions/Xcomposite.h>
+
+int main (int argc, char **argv)
+{
+ XCompositeRedirectWindow((Display *)0,(Window) 0,CompositeRedirectManual);
+
+ return 0;
+}
diff --git a/config.tests/xcomposite/xcomposite.pro b/config.tests/xcomposite/xcomposite.pro
new file mode 100644
index 000000000..1c885357b
--- /dev/null
+++ b/config.tests/xcomposite/xcomposite.pro
@@ -0,0 +1,12 @@
+TARGET = xcomposite
+QT = core
+
+!contains(QT_CONFIG, no-pkg-config) {
+ CONFIG += link_pkgconfig
+ PKGCONFIG += xcomposite
+} else {
+ LIBS += -lXcomposite
+}
+
+# Input
+SOURCES += main.cpp
diff --git a/config.tests/xkbcommon/xkbcommon.pro b/config.tests/xkbcommon/xkbcommon.pro
index 1fc353431..af6668bc1 100644
--- a/config.tests/xkbcommon/xkbcommon.pro
+++ b/config.tests/xkbcommon/xkbcommon.pro
@@ -1,9 +1,8 @@
TARGET = xkbcommon
QT = core
-CONFIG += link_pkgconfig
-
!contains(QT_CONFIG, no-pkg-config) {
+ CONFIG += link_pkgconfig
PKGCONFIG += xkbcommon
} else {
LIBS += -lxkbcommon
diff --git a/qtwayland.pro b/qtwayland.pro
index fa2822b80..651045e30 100644
--- a/qtwayland.pro
+++ b/qtwayland.pro
@@ -1,5 +1,9 @@
load(configure)
qtCompileTest(xkbcommon)
qtCompileTest(brcm_egl)
+qtCompileTest(egl)
+qtCompileTest(glx)
+qtCompileTest(wayland_egl)
+qtCompileTest(xcomposite)
load(qt_parts)
diff --git a/src/compositor/hardware_integration/hardware_integration.pri b/src/compositor/hardware_integration/hardware_integration.pri
index 372a1e1f0..c008521ac 100644
--- a/src/compositor/hardware_integration/hardware_integration.pri
+++ b/src/compositor/hardware_integration/hardware_integration.pri
@@ -1,6 +1,6 @@
isEmpty(QT_WAYLAND_GL_CONFIG):QT_WAYLAND_GL_CONFIG = $$(QT_WAYLAND_GL_CONFIG)
-!mac:!isEqual(QT_WAYLAND_GL_CONFIG,nogl) {
+!isEqual(QT_WAYLAND_GL_CONFIG,nogl) {
HEADERS += \
$$PWD/graphicshardwareintegration.h
@@ -12,37 +12,32 @@ isEmpty(QT_WAYLAND_GL_CONFIG):QT_WAYLAND_GL_CONFIG = $$(QT_WAYLAND_GL_CONFIG)
isEqual(QT_WAYLAND_GL_CONFIG, custom) {
QT_WAYLAND_GL_INTEGRATION = $$QT_WAYLAND_GL_CONFIG
} else {
- contains(QT_CONFIG, opengles2) {
- isEqual(QT_WAYLAND_GL_CONFIG, xcomposite_egl) {
+ equals(QT_WAYLAND_GL_CONFIG, brcm_egl) {
+ CONFIG -= config_wayland_egl config_xcomposite
+ }
+
+ equals(QT_WAYLAND_GL_CONFIG, xcomposite) {
+ CONFIG -= config_wayland_egl config_brcm_egl
+ }
+
+ config_wayland_egl {
+ include (wayland_egl/wayland_egl.pri)
+ QT_WAYLAND_GL_INTEGRATION = wayland_egl
+ }else:config_brcm_egl {
+ include (brcm_egl/brcm_egl.pri)
+ QT_WAYLAND_GL_INTEGRATION = brcm_egl
+ }else:config_xcomposite{
+ config_egl{
+ include (xcomposite_egl/xcomposite_egl.pri)
QT_WAYLAND_GL_INTEGRATION = xcomposite_egl
- CONFIG += xcomposite_egl
- } else:isEqual(QT_WAYLAND_GL_CONFIG, brcm_egl)|isEmpty(QT_WAYLAND_GL_CONFIG):config_brcm_egl {
- QT_WAYLAND_GL_INTEGRATION = brcm_egl
- CONFIG += brcm_egl
- } else {
- QT_WAYLAND_GL_INTEGRATION = wayland_egl
- CONFIG += wayland_egl
- DEFINES += MESA_EGL_NO_X11_HEADERS
+ }else:config_glx{
+ include (xcomposite_glx/xcomposite_glx.pri)
+ QT_WAYLAND_GL_INTEGRATION = xcomposite_glx
}
- } else {
- QT_WAYLAND_GL_INTEGRATION = xcomposite_glx
- CONFIG += xcomposite_glx
}
}
- system(echo "Qt-Compositor configured with openGL: $$QT_WAYLAND_GL_INTEGRATION")
+ system(echo "Qt-Compositor configured with openGL integration: $$QT_WAYLAND_GL_INTEGRATION")
} else {
system(echo "Qt-Compositor configured as raster only compositor")
}
-brcm_egl {
- include (brcm_egl/brcm_egl.pri)
-}
-wayland_egl {
- include (wayland_egl/wayland_egl.pri)
-}
-xcomposite_egl {
- include (xcomposite_egl/xcomposite_egl.pri)
-}
-xcomposite_glx {
- include (xcomposite_glx/xcomposite_glx.pri)
-}
diff --git a/src/plugins/platforms/wayland/gl_integration/gl_integration.pri b/src/plugins/platforms/wayland/gl_integration/gl_integration.pri
index 720f304bf..5fc7c4302 100644
--- a/src/plugins/platforms/wayland/gl_integration/gl_integration.pri
+++ b/src/plugins/platforms/wayland/gl_integration/gl_integration.pri
@@ -1,4 +1,4 @@
-QT_WAYLAND_GL_CONFIG = $$(QT_WAYLAND_GL_CONFIG)
+isEmpty(QT_WAYLAND_GL_CONFIG):QT_WAYLAND_GL_CONFIG = $$(QT_WAYLAND_GL_CONFIG)
contains(QT_CONFIG, opengl):!equals(QT_WAYLAND_GL_CONFIG, nogl) {
DEFINES += QT_WAYLAND_GL_SUPPORT
@@ -9,61 +9,42 @@ contains(QT_CONFIG, opengl):!equals(QT_WAYLAND_GL_CONFIG, nogl) {
SOURCES += \
$$PWD/qwaylandglintegration.cpp
- contains(QT_CONFIG, opengles2) {
- isEqual(QT_WAYLAND_GL_CONFIG, xcomposite_egl) {
+ equals(QT_WAYLAND_GL_CONFIG, brcm_egl) {
+ CONFIG -= config_wayland_egl config_xcomposite
+ }
+
+ equals(QT_WAYLAND_GL_CONFIG, xcomposite) {
+ CONFIG -= config_wayland_egl config_brcm_egl
+ }
+
+ config_wayland_egl {
+ include ($$PWD/wayland_egl/wayland_egl.pri)
+ QT_WAYLAND_GL_INTEGRATION = wayland_egl
+ }else:config_brcm_egl {
+ include ($$PWD/brcm_egl/brcm_egl.pri)
+ QT_WAYLAND_GL_INTEGRATION = brcm_egl
+ }else:config_xcomposite {
+ config_egl {
+ include ($$PWD/xcomposite_egl/xcomposite_egl.pri)
QT_WAYLAND_GL_INTEGRATION = xcomposite_egl
- CONFIG += xcomposite_egl
- } else:isEqual(QT_WAYLAND_GL_CONFIG,readback) {
- QT_WAYLAND_GL_INTEGRATION = readback_egl
- CONFIG += readback_egl
- } else:isEqual(QT_WAYLAND_GL_CONFIG, brcm_egl)|isEmpty(QT_WAYLAND_GL_CONFIG):config_brcm_egl {
- QT_WAYLAND_GL_INTEGRATION = brcm_egl
- CONFIG += brcm_egl
- } else {
- QT_WAYLAND_GL_INTEGRATION = wayland_egl
- CONFIG += wayland_egl
+ }else:config_glx {
+ include ($$PWD/xcomposite_glx/xcomposite_glx.pri)
+ QT_WAYLAND_GL_INTEGRATION = xcomposite_glx
}
- } else:mac {
- QT_WAYLAND_GL_INTEGRATION = readback_cgl
- CONFIG += readback_cgl
- } else {
- isEqual(QT_WAYLAND_GL_CONFIG, readback) {
+ }else:mac {
+ include ($$PWD/readback_cgl/readback_cgl.pri)
+ QT_WAYLAND_GL_INTEGRATION = readback_cgl
+ }else {
+ config_egl {
+ include ($$PWD/readback_egl/readback_egl.pri)
+ QT_WAYLAND_GL_INTEGRATION = readback_egl
+ }else:config_glx {
+ include ($$PWD/readback_glx/readback_glx.pri)
QT_WAYLAND_GL_INTEGRATION = readback_glx
- CONFIG += readback_glx
- } else {
- QT_WAYLAND_GL_INTEGRATION = xcomposite_glx
- CONFIG += xcomposite_glx
}
}
- message("Wayland GL Integration: $$QT_WAYLAND_GL_INTEGRATION")
-}
+ system(echo "Qt Wayland plugin configured with openGL integration: $$QT_WAYLAND_GL_INTEGRATION")
-
-wayland_egl {
- include ($$PWD/wayland_egl/wayland_egl.pri)
}
-readback_egl {
- include ($$PWD/readback_egl/readback_egl.pri)
-}
-
-brcm_egl {
- include ($$PWD/brcm_egl/brcm_egl.pri)
-}
-
-readback_glx {
- include ($$PWD/readback_glx/readback_glx.pri)
-}
-
-readback_cgl {
- include ($$PWD/readback_cgl/readback_cgl.pri)
-}
-
-xcomposite_glx {
- include ($$PWD/xcomposite_glx/xcomposite_glx.pri)
-}
-
-xcomposite_egl {
- include ($$PWD/xcomposite_egl/xcomposite_egl.pri)
-}