diff options
-rw-r--r-- | config.tests/qpa/egl/egl.cpp (renamed from config.tests/unix/egl/egl.cpp) | 0 | ||||
-rw-r--r-- | config.tests/qpa/egl/egl.pro (renamed from config.tests/unix/egl/egl.pro) | 0 | ||||
-rwxr-xr-x | configure | 139 | ||||
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 2 | ||||
-rw-r--r-- | src/opengl/opengl.pro | 2 | ||||
-rw-r--r-- | src/plugins/platforms/platforms.pro | 4 | ||||
-rw-r--r-- | src/tools/qdoc/doc/config/qt-defines.qdocconf | 1 | ||||
-rw-r--r-- | tests/auto/opengl/qgl/qgl.pro | 3 | ||||
-rw-r--r-- | tests/auto/opengl/qgl/tst_qgl.cpp | 4 | ||||
-rw-r--r-- | tests/auto/opengl/qglbuffer/qglbuffer.pro | 2 | ||||
-rw-r--r-- | tests/auto/opengl/qglfunctions/qglfunctions.pro | 2 | ||||
-rw-r--r-- | tests/auto/opengl/qglthreads/qglthreads.pro | 2 | ||||
-rw-r--r-- | tools/configure/configureapp.cpp | 6 |
13 files changed, 76 insertions, 91 deletions
diff --git a/config.tests/unix/egl/egl.cpp b/config.tests/qpa/egl/egl.cpp index d196a457a5..d196a457a5 100644 --- a/config.tests/unix/egl/egl.cpp +++ b/config.tests/qpa/egl/egl.cpp diff --git a/config.tests/unix/egl/egl.pro b/config.tests/qpa/egl/egl.pro index f04d053543..f04d053543 100644 --- a/config.tests/unix/egl/egl.pro +++ b/config.tests/qpa/egl/egl.pro @@ -679,8 +679,7 @@ CFG_OPENVG=auto CFG_OPENVG_LC_INCLUDES=no CFG_OPENVG_SHIVA=auto CFG_OPENVG_ON_OPENGL=auto -CFG_EGL=no -CFG_EGL_GLES_INCLUDES=no +CFG_EGL=auto CFG_SSE=auto CFG_FONTCONFIG=auto CFG_LIBFREETYPE=auto @@ -708,6 +707,7 @@ CFG_XINPUT=runtime CFG_XKB=auto CFG_XCB=auto CFG_XCB_LIMITED=yes +CFG_EGLFS=auto CFG_LIBUDEV=auto CFG_OBSOLETE_WAYLAND=no CFG_EVDEV=auto @@ -893,7 +893,7 @@ while [ "$#" -gt 0 ]; do VAL=no ;; #Qt style yes options - -profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-xinput2|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-xcb|-nis|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-debug-and-release|-exceptions|-harfbuzz|-prefix-install|-silent|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-phonon-backend|-audio-backend|-declarative-debug|-javascript-jit|-rpath|-force-pkg-config|-icu|-force-asserts|-testcocoon) + -profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-xinput2|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-xcb|-eglfs|-nis|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-debug-and-release|-exceptions|-harfbuzz|-prefix-install|-silent|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-phonon-backend|-audio-backend|-declarative-debug|-javascript-jit|-rpath|-force-pkg-config|-icu|-force-asserts|-testcocoon) VAR=`echo $1 | sed "s,^-\(.*\),\1,"` VAL=yes ;; @@ -1165,9 +1165,6 @@ while [ "$#" -gt 0 ]; do [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "es2" ]; then CFG_OPENGL="$VAL" - if [ "$VAL" = "es2" ]; then - CFG_EGL="yes" - fi else UNKNOWN_OPT=yes fi @@ -1175,9 +1172,6 @@ while [ "$#" -gt 0 ]; do openvg) if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then CFG_OPENVG="$VAL" - if [ "$CFG_EGL" = "no" ] && [ "$VAL" != "no" ]; then - CFG_EGL=auto - fi else UNKNOWN_OPT=yes fi @@ -1654,6 +1648,13 @@ while [ "$#" -gt 0 ]; do wayland) CFG_OBSOLETE_WAYLAND=yes ;; + eglfs) + if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then + CFG_EGLFS="$VAL" + else + UNKNOWN_OPT=yes + fi + ;; libudev) if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then CFG_LIBUDEV="$VAL" @@ -2869,6 +2870,14 @@ if [ "$OPT_HELP" = "yes" ]; then XCBN=" " fi + if [ "$CFG_EGLFS" = "no" ]; then + EGLFSY=" " + EGLFSN="*" + else + EGLFSY="*" + EGLFSN=" " + fi + if [ "$CFG_XINPUT2" = "no" ]; then X2Y=" " X2N="*" @@ -3191,6 +3200,9 @@ if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support. $XCBY -xcb ............... Compile Xcb support. + $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support. + $EGLFSY -eglfs ............. Compile EGLFS support. + EOF fi # X11 @@ -3309,12 +3321,6 @@ Qt/X11 only: -system-nas-sound .. Use NAS libaudio from the operating system. See http://radscan.com/nas.html - -egl ............... Use EGL instead of GLX to manage contexts. - When building for desktop OpenGL, this option will - make Qt use EGL to manage contexts rather than the - GLX, which is the default. Note: For OpenGL ES, EGL - is always used. - -no-opengl ......... Do not support OpenGL. + -opengl <api> ...... Enable OpenGL support. With no parameter, this will auto-detect the "best" @@ -4103,6 +4109,14 @@ if [ "$CFG_ACCESSIBILITY" = "auto" ]; then CFG_ACCESSIBILITY=yes fi +if [ "$CFG_EGLFS" = "yes" ]; then + if [ "$CFG_EGL" = "no" ]; then + echo "The EGLFS plugin requires EGL support and cannot be built" + exit 101 + fi + CFG_EGL=yes +fi + # auto-detect SQL-modules support for _SQLDR in $CFG_SQL_AVAILABLE; do case $_SQLDR in @@ -4570,9 +4584,6 @@ if [ "$PLATFORM_X11" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then CFG_OPENGL=desktop elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then CFG_OPENGL=es2 - if [ "$CFG_EGL" = "no" ]; then - CFG_EGL=auto - fi else if [ "$CFG_OPENGL" = "yes" ]; then echo "All the OpenGL functionality tests failed!" @@ -4914,7 +4925,6 @@ if [ "$BUILD_ON_MAC" = "yes" ]; then fi fi - if [ "$PLATFORM_QPA" = "yes" ]; then # auto-detect OpenGL support (es2 = OpenGL ES 2.x) if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then @@ -4984,6 +4994,7 @@ if [ "$PLATFORM_QPA" = "yes" ]; then # Save these for a check later ORIG_CFG_XCB="$CFG_XCB" + ORIG_CFG_EGLFS="$CFG_EGLFS" if [ "$CFG_LIBUDEV" != "no" ]; then if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then @@ -5101,6 +5112,31 @@ if [ "$PLATFORM_QPA" = "yes" ]; then QMAKE_DEFINES_XCB=QT_NO_XCB_XKB fi + # EGL Support + if [ "$CFG_EGL" != "no" ]; then + if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then + QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'` + QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null` + QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null` + QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL" + QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL" + fi # detect EGL support + if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/qpa/egl" "EGL" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then + CFG_EGL=yes + elif [ "$CFG_EGL" = "yes" ]; then + echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces." + echo " You might need to modify the include and library search paths by editing" + echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}." + exit 1 + else + CFG_EGL=no + fi + fi + + if [ "$CFG_EGLFS" != "no" ]; then + CFG_EGLFS="$CFG_EGL" + fi + if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB" QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB" @@ -5116,13 +5152,13 @@ if [ "$PLATFORM_QPA" = "yes" ]; then fi if [ "$PLATFORM_QPA" = "yes" ] && [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ]; then - if [ "$CFG_XCB" = "no" ]; then + if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ]; then if [ "$QPA_PLATFORM_GUARD" = "yes" ] && - ( [ "$ORIG_CFG_XCB" = "auto" ] ); then + ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] ); then echo "No QPA platform plugin enabled!" echo " If you really want to build without a QPA platform plugin you must pass" - echo " -no-xcb. Doing this will produce a Qt that" - echo " cannot run GUI applications." + echo " -no-xcb and -no-eglfs to configure. Doing this will" + echo " produce a Qt that cannot run GUI applications." echo " The dependencies needed for xcb to build are listed in" echo " src/plugins/platforms/xcb/README" exit 1 @@ -5132,35 +5168,6 @@ if [ "$PLATFORM_QPA" = "yes" ]; then fi -EGL_VARIANT=none -# EGL Support -if [ "$PLATFORM_X11" = "yes" ]; then - if [ "$CFG_EGL" != "no" ]; then - # detect EGL support - if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/egl" "EGL (EGL/egl.h)" $L_FLAGS $I_FLAGS $l_FLAGS; then - # EGL specified by QMAKE_*_EGL, included with <EGL/egl.h> - EGL_VARIANT=regular - CFG_EGL=yes - fi - - if [ "$EGL_VARIANT" = "none" ]; then - if [ "$CFG_EGL" = "yes" ]; then - echo "The EGL functionality test failed!" - echo " EGL is required for OpenGL ES to manage contexts & surfaces." - echo " You might need to modify the include and library search paths by editing" - echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in" - echo " ${XQMAKESPEC}." - exit 1 - fi - CFG_EGL=no - # If QtOpenGL would be built against OpenGL ES, disable it as we can't to that if EGL is missing - if [ "$CFG_OPENGL" = "es2" ]; then - CFG_OPENGL=no - fi - fi - fi -fi - [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_PHONON" != "no" ] && CFG_PHONON="yes" # freetype support @@ -5448,19 +5455,18 @@ else QT_CONFIG="$QT_CONFIG accessibility" fi -# egl stuff does not belong in lighthouse, but rather in plugins -if [ "$PLATFORM_QPA" = "yes" ]; then - CFG_EGL="no" -fi - # enable egl -if [ "$CFG_EGL" = "no" ]; then +if [ "$CFG_EGL" = "yes" ]; then + QT_CONFIG="$QT_CONFIG egl" +else QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL" +fi + +# enable eglfs +if [ "$CFG_EGLFS" = "yes" ]; then + QT_CONFIG="$QT_CONFIG eglfs" else - QT_CONFIG="$QT_CONFIG egl" - if [ "$CFG_EGL_GLES_INCLUDES" = "yes" ]; then - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GLES_EGL" - fi + QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS" fi # enable openvg @@ -6552,13 +6558,7 @@ elif [ "$CFG_OPENGL" = "es2" ]; then else echo "OpenGL support ......... no" fi -if [ "$CFG_EGL" != "no" ]; then - if [ "$CFG_EGL_GLES_INCLUDES" = "yes" ]; then - echo "EGL support ............ yes <GLES/egl.h>" - else - echo "EGL support ............ yes <EGL/egl.h>" - fi -fi + if [ "$CFG_OPENVG" ]; then if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then echo "OpenVG support ......... ShivaVG" @@ -6614,6 +6614,7 @@ echo "Xrender support ........ $CFG_XRENDER" if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then echo "XInput2 support ........ $CFG_XINPUT2" fi +echo "EGLFS support .......... $CFG_EGLFS" echo # complain about not being able to use dynamic plugins if we are using a static build diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index df3371b236..fe1c93ea29 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -512,6 +512,8 @@ static void init_platform(const QString &pluginArgument, const QString &platform const QString defaultPlatform = QLatin1String("xcb"); #elif !defined (QT_NO_WAYLAND) const QString defaultPlatform = QLatin1String("wayland"); +#elif !defined (QT_NO_EGLFS) + const QString defaultPlatform = QLatin1String("eglfs"); #else const QString defaultPlatform = QLatin1String("minimal"); #endif diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro index 89f8d0a3c2..b2b3790b29 100644 --- a/src/opengl/opengl.pro +++ b/src/opengl/opengl.pro @@ -72,6 +72,4 @@ SOURCES += qglshaderprogram.cpp \ SOURCES += qgl_qpa.cpp \ qglpixelbuffer_stub.cpp -DEFINES += QT_NO_EGL - INCLUDEPATH += ../3rdparty/harfbuzz/src diff --git a/src/plugins/platforms/platforms.pro b/src/plugins/platforms/platforms.pro index c97c1def0c..692332291c 100644 --- a/src/plugins/platforms/platforms.pro +++ b/src/plugins/platforms/platforms.pro @@ -15,3 +15,7 @@ win32: SUBDIRS += windows qnx-*-qcc { SUBDIRS += qnx } + +contains(QT_CONFIG, eglfs) { + SUBDIRS += eglfs +} diff --git a/src/tools/qdoc/doc/config/qt-defines.qdocconf b/src/tools/qdoc/doc/config/qt-defines.qdocconf index 50a355f04c..e11b32dc4c 100644 --- a/src/tools/qdoc/doc/config/qt-defines.qdocconf +++ b/src/tools/qdoc/doc/config/qt-defines.qdocconf @@ -3,7 +3,6 @@ defines = Q_QDOC \ QT_.*_LIB \ QT_COMPAT \ QT_KEYPAD_NAVIGATION \ - QT_NO_EGL \ QT3_SUPPORT \ Q_WS_.* \ Q_OS_.* \ diff --git a/tests/auto/opengl/qgl/qgl.pro b/tests/auto/opengl/qgl/qgl.pro index 963b2d7e55..db82d9a256 100644 --- a/tests/auto/opengl/qgl/qgl.pro +++ b/tests/auto/opengl/qgl/qgl.pro @@ -7,9 +7,6 @@ TARGET = tst_qgl requires(contains(QT_CONFIG,opengl)) QT += widgets widgets-private opengl-private gui-private core-private testlib -contains(QT_CONFIG,egl):DEFINES += QGL_EGL -win32:!wince*: DEFINES += QT_NO_EGL - SOURCES += tst_qgl.cpp RESOURCES = qgl.qrc diff --git a/tests/auto/opengl/qgl/tst_qgl.cpp b/tests/auto/opengl/qgl/tst_qgl.cpp index f741fb9248..051e26f4af 100644 --- a/tests/auto/opengl/qgl/tst_qgl.cpp +++ b/tests/auto/opengl/qgl/tst_qgl.cpp @@ -1396,10 +1396,6 @@ void tst_QGL::glWidgetRenderPixmap() QImage reference(fb.size(), QImage::Format_RGB32); reference.fill(0xffff0000); -#if defined(QGL_EGL) && !defined(Q_WS_X11) - QSKIP("renderPixmap() not yet supported under EGL on your platform"); -#endif - QFUZZY_COMPARE_IMAGES(fb, reference); } diff --git a/tests/auto/opengl/qglbuffer/qglbuffer.pro b/tests/auto/opengl/qglbuffer/qglbuffer.pro index 537f3c122a..f766cb8944 100644 --- a/tests/auto/opengl/qglbuffer/qglbuffer.pro +++ b/tests/auto/opengl/qglbuffer/qglbuffer.pro @@ -7,6 +7,4 @@ TARGET = tst_qglbuffer requires(contains(QT_CONFIG,opengl)) QT += opengl widgets testlib -win32:!wince*: DEFINES += QT_NO_EGL - SOURCES += tst_qglbuffer.cpp diff --git a/tests/auto/opengl/qglfunctions/qglfunctions.pro b/tests/auto/opengl/qglfunctions/qglfunctions.pro index 4b7c8758a9..0113068f1d 100644 --- a/tests/auto/opengl/qglfunctions/qglfunctions.pro +++ b/tests/auto/opengl/qglfunctions/qglfunctions.pro @@ -3,6 +3,4 @@ TARGET = tst_qglfunctions requires(contains(QT_CONFIG,opengl)) QT += opengl widgets testlib -win32:!wince*: DEFINES += QT_NO_EGL - SOURCES += tst_qglfunctions.cpp diff --git a/tests/auto/opengl/qglthreads/qglthreads.pro b/tests/auto/opengl/qglthreads/qglthreads.pro index 9d3e86a03e..1534472ef6 100644 --- a/tests/auto/opengl/qglthreads/qglthreads.pro +++ b/tests/auto/opengl/qglthreads/qglthreads.pro @@ -3,8 +3,6 @@ TARGET = tst_qglthreads requires(contains(QT_CONFIG,opengl)) QT += opengl widgets testlib -win32:!wince*: DEFINES += QT_NO_EGL - HEADERS += tst_qglthreads.h SOURCES += tst_qglthreads.cpp diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 5a6a04aee0..0c9907f6d5 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -1544,8 +1544,6 @@ bool Configure::displayHelp() desc("OPENVG", "no","-no-openvg", "Disables OpenVG functionality\n"); desc("OPENVG", "yes","-openvg", "Enables OpenVG functionality"); - desc( "", "Requires EGL support, typically supplied by an OpenGL", false, ' '); - desc( "", "or other graphics implementation\n", false, ' '); desc( "-force-asserts", "Activate asserts in release mode.\n"); #endif desc( "-platform <spec>", "The operating system and compiler you are building on.\n(default %QMAKESPEC%)\n"); @@ -2850,10 +2848,6 @@ void Configure::generateConfigfiles() if (dictionary["FREETYPE"] == "no") qconfigList += "QT_NO_FREETYPE"; if (dictionary["NATIVE_GESTURES"] == "no") qconfigList += "QT_NO_NATIVE_GESTURES"; - if (dictionary["OPENGL_ES_CM"] == "no" && - dictionary["OPENGL_ES_2"] == "no" && - dictionary["OPENVG"] == "no") qconfigList += "QT_NO_EGL"; - if (dictionary["OPENGL_ES_CM"] == "yes" || dictionary["OPENGL_ES_2"] == "yes") qconfigList += "QT_OPENGL_ES"; |