diff options
Diffstat (limited to 'src/gui/opengl/qopengldebug.cpp')
-rw-r--r-- | src/gui/opengl/qopengldebug.cpp | 51 |
1 files changed, 29 insertions, 22 deletions
diff --git a/src/gui/opengl/qopengldebug.cpp b/src/gui/opengl/qopengldebug.cpp index 79b59a8e98..dcab3a5c52 100644 --- a/src/gui/opengl/qopengldebug.cpp +++ b/src/gui/opengl/qopengldebug.cpp @@ -5,36 +5,28 @@ ** ** This file is part of the QtGui module of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** ** $QT_END_LICENSE$ ** ****************************************************************************/ @@ -460,6 +452,17 @@ QT_BEGIN_NAMESPACE connecting to the messageLogged() signal. */ +// When using OpenGL ES 2.0, all the necessary GL_KHR_debug constants are +// provided in qopengles2ext.h. Unfortunately, newer versions of that file +// suffix everything with _KHR which causes extra headache when the goal is +// to have a single piece of code that builds in all our target +// environments. Therefore, try to detect this and use our custom defines +// instead, which we anyway need for OS X. + +#if defined(GL_KHR_debug) && defined(GL_DEBUG_SOURCE_API_KHR) +#define USE_MANUAL_DEFS +#endif + // Under OSX (at least up to 10.8) we cannot include our copy of glext.h, // but we use the system-wide one, which unfortunately lacks all the needed // defines/typedefs. In order to make the code compile, we just add here @@ -467,6 +470,10 @@ QT_BEGIN_NAMESPACE #ifndef GL_KHR_debug #define GL_KHR_debug 1 +#define USE_MANUAL_DEFS +#endif + +#ifdef USE_MANUAL_DEFS #ifndef GL_DEBUG_OUTPUT_SYNCHRONOUS #define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 @@ -589,9 +596,9 @@ QT_BEGIN_NAMESPACE #define GL_STACK_UNDERFLOW 0x0504 #endif -typedef void (QOPENGLF_APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam); +typedef void (QOPENGLF_APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const GLvoid *userParam); -#endif /* GL_KHR_debug */ +#endif /* USE_MANUAL_DEFS */ /*! @@ -1276,9 +1283,9 @@ static void QOPENGLF_APIENTRY qt_opengl_debug_callback(GLenum source, GLenum severity, GLsizei length, const GLchar *rawMessage, - GLvoid *userParam) + const GLvoid *userParam) { - QOpenGLDebugLoggerPrivate *loggerPrivate = static_cast<QOpenGLDebugLoggerPrivate *>(userParam); + QOpenGLDebugLoggerPrivate *loggerPrivate = static_cast<QOpenGLDebugLoggerPrivate *>(const_cast<GLvoid *>(userParam)); loggerPrivate->handleMessage(source, type, id, severity, length, rawMessage); } } |