Move the glxfbconfig configtest to qpa and rename it to glx

We require glx version 1.3 which is where fbconfig is first defined.
Also make use of the configure test and report the glx status.
GLX support should always take precedence when compiling the
xcb backend

Change-Id: Ie46834210bf5cd2ac4006ff08379e0d3434ffa2b
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
This commit is contained in:
Jorgen Lind 2013-11-28 11:06:29 +01:00 committed by The Qt Project
parent d34cae51fa
commit a2d3b7c991
4 changed files with 38 additions and 26 deletions

View File

@ -44,6 +44,7 @@
int main(int, char **) int main(int, char **)
{ {
//We require glxfbconfig, ie. glx 1.3
GLXFBConfig config; GLXFBConfig config;
config = 0; config = 0;

View File

@ -1,4 +1,4 @@
SOURCES = glxfbconfig.cpp SOURCES = glx.cpp
CONFIG += x11 CONFIG += x11
INCLUDEPATH += $$QMAKE_INCDIR_OPENGL INCLUDEPATH += $$QMAKE_INCDIR_OPENGL

59
configure vendored
View File

@ -611,6 +611,7 @@ CFG_OPENVG_LC_INCLUDES=no
CFG_OPENVG_SHIVA=auto CFG_OPENVG_SHIVA=auto
CFG_OPENVG_ON_OPENGL=auto CFG_OPENVG_ON_OPENGL=auto
CFG_EGL=auto CFG_EGL=auto
CFG_GLX=auto
CFG_SSE=auto CFG_SSE=auto
CFG_FONTCONFIG=auto CFG_FONTCONFIG=auto
CFG_FREETYPE=auto CFG_FREETYPE=auto
@ -1480,6 +1481,13 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes UNKNOWN_OPT=yes
fi fi
;; ;;
glx)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_GLX="$VAL"
else
UNKNOWN_OPT=yes
fi
;;
pch) pch)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_PRECOMPILE="$VAL" CFG_PRECOMPILE="$VAL"
@ -4902,19 +4910,6 @@ if [ "$XPLATFORM_MINGW" = "yes" ]; then
fi fi
CFG_OPENGL=no CFG_OPENGL=no
fi fi
case "$PLATFORM" in
hpux*)
# HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
if [ "$CFG_OPENGL" = "desktop" ]; then
compileTest x11/glxfbconfig "OpenGL"
if [ $? != "0" ]; then
QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
fi
fi
;;
*)
;;
esac
elif [ "$CFG_OPENGL" = "es2" ]; then elif [ "$CFG_OPENGL" = "es2" ]; then
#OpenGL ES 2.x #OpenGL ES 2.x
compileTest unix/opengles2 "OpenGL ES 2.x" compileTest unix/opengles2 "OpenGL ES 2.x"
@ -4935,17 +4930,6 @@ if [ "$XPLATFORM_MINGW" = "yes" ]; then
echo " ${XQMAKESPEC}." echo " ${XQMAKESPEC}."
exit 1 exit 1
fi fi
case "$PLATFORM" in
hpux*)
# HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
compileTest x11/glxfbconfig "OpenGL"
if [ $? != "0" ]; then
QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
fi
;;
*)
;;
esac
fi fi
fi # X11/MINGW OpenGL fi # X11/MINGW OpenGL
@ -5307,6 +5291,24 @@ if [ "$CFG_EGL" != "no" ]; then
fi fi
fi fi
# GLX Support
if [ "$CFG_GLX" != "no" ]; then
if [ "$CFG_GLX" = "yes" ] && [ "$CFG_OPENGL" = "no" ]; then
echo "GLX support was requested but OpenGL support is disabled."
echo "Either disable GLX support or enable OpenGL support."
exit 101
fi
if compileTest qpa/glx "GLX"; then
CFG_GLX=yes
elif [ "$CFG_GLX" = "yes" ]; then
echo " The GLX functionality test failed; GLX is required by the xcb plugin to manage contexts & surfaces."
exit 1
else
CFG_GLX=no
fi
fi
if [ "$CFG_EGLFS" != "no" ]; then if [ "$CFG_EGLFS" != "no" ]; then
if [ "$XPLATFORM_QNX" = "no" ]; then if [ "$XPLATFORM_QNX" = "no" ]; then
CFG_EGLFS="$CFG_EGL" CFG_EGLFS="$CFG_EGL"
@ -5668,6 +5670,13 @@ else
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL" QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
fi fi
# enable glx
if [ "$CFG_GLX" = "yes" ]; then
QT_CONFIG="$QT_CONFIG glx"
else
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLX"
fi
# enable eglfs # enable eglfs
if [ "$CFG_EGLFS" = "yes" ]; then if [ "$CFG_EGLFS" = "yes" ]; then
QT_CONFIG="$QT_CONFIG eglfs" QT_CONFIG="$QT_CONFIG eglfs"
@ -6699,6 +6708,8 @@ else
report_support " pkg-config ............. no" report_support " pkg-config ............. no"
fi fi
report_support " PulseAudio ............." "$CFG_PULSEAUDIO" report_support " PulseAudio ............." "$CFG_PULSEAUDIO"
report_support " EGL ...................." "$CFG_EGL"
report_support " GLX ...................." "$CFG_GLX"
report_support " QPA backends:" report_support " QPA backends:"
report_support " DirectFB ............." "$CFG_DIRECTFB" report_support " DirectFB ............." "$CFG_DIRECTFB"
report_support " EGLFS ................" "$CFG_EGLFS" report_support " EGLFS ................" "$CFG_EGLFS"

View File

@ -81,7 +81,7 @@ contains(QT_CONFIG, xcb-sm) {
} }
contains(QT_CONFIG, opengl) { contains(QT_CONFIG, opengl) {
contains(QT_CONFIG, xcb-xlib):!contains(QT_CONFIG, opengles2) { contains(QT_CONFIG, xcb-xlib):contains(QT_CONFIG, glx) {
DEFINES += XCB_USE_GLX DEFINES += XCB_USE_GLX
HEADERS += qglxintegration.h HEADERS += qglxintegration.h
SOURCES += qglxintegration.cpp SOURCES += qglxintegration.cpp