diff options
Diffstat (limited to 'src/gui/doc/snippets/code/src_gui_opengl_qopengldebug.cpp')
-rw-r--r-- | src/gui/doc/snippets/code/src_gui_opengl_qopengldebug.cpp | 89 |
1 files changed, 61 insertions, 28 deletions
diff --git a/src/gui/doc/snippets/code/src_gui_opengl_qopengldebug.cpp b/src/gui/doc/snippets/code/src_gui_opengl_qopengldebug.cpp index e82447a174..241450c23a 100644 --- a/src/gui/doc/snippets/code/src_gui_opengl_qopengldebug.cpp +++ b/src/gui/doc/snippets/code/src_gui_opengl_qopengldebug.cpp @@ -47,54 +47,87 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ +#include <QOpenGLContext> +#include <QSurfaceFormat> +#include <QWidget> +#include <QtOpenGL/QOpenGLDebugLogger> + +namespace src_gui_opengl_qopengldebug { +struct LogHandler : public QObject +{ + Q_OBJECT +public slots: + static bool handleLoggedMessage() { return true; }; +}; +struct SnippetWrapper : public QObject +{ + Q_OBJECT + void wrapper1(LogHandler *receiver); + const QWidget *receiver; +}; + +void wrapper0() { //! [0] - GLenum error = GL_NO_ERROR; - do { - error = glGetError(); - if (error != GL_NO_ERROR) - // handle the error - } while (error != GL_NO_ERROR); +GLenum error = GL_NO_ERROR; +do { + error = glGetError(); + if (error != GL_NO_ERROR) { + // handle the error + } +} while (error != GL_NO_ERROR); //! [0] + //! [1] - QSurfaceFormat format; - // asks for a OpenGL 3.2 debug context using the Core profile - format.setMajorVersion(3); - format.setMinorVersion(2); - format.setProfile(QSurfaceFormat::CoreProfile); - format.setOption(QSurfaceFormat::DebugContext); - - QOpenGLContext *context = new QOpenGLContext; - context->setFormat(format); - context->create(); +QSurfaceFormat format; +// asks for a OpenGL 3.2 debug context using the Core profile +format.setMajorVersion(3); +format.setMinorVersion(2); +format.setProfile(QSurfaceFormat::CoreProfile); +format.setOption(QSurfaceFormat::DebugContext); + +QOpenGLContext *context = new QOpenGLContext; +context->setFormat(format); +context->create(); //! [1] +} // wrapper0 + + +void SnippetWrapper::wrapper1(LogHandler *receiver) { //! [2] - QOpenGLContext *ctx = QOpenGLContext::currentContext(); - QOpenGLDebugLogger *logger = new QOpenGLDebugLogger(this); +QOpenGLContext *ctx = QOpenGLContext::currentContext(); +QOpenGLDebugLogger *logger = new QOpenGLDebugLogger(this); - logger->initialize(); // initializes in the current context, i.e. ctx +logger->initialize(); // initializes in the current context, i.e. ctx //! [2] + //! [3] - ctx->hasExtension(QByteArrayLiteral("GL_KHR_debug")) +ctx->hasExtension(QByteArrayLiteral("GL_KHR_debug")); //! [3] + //! [4] - const QList<QOpenGLDebugMessage> messages = logger->loggedMessages(); - for (const QOpenGLDebugMessage &message : messages) - qDebug() << message; +const QList<QOpenGLDebugMessage> messages = logger->loggedMessages(); +for (const QOpenGLDebugMessage &message : messages) + qDebug() << message; //! [4] + //! [5] - connect(logger, &QOpenGLDebugLogger::messageLogged, receiver, &LogHandler::handleLoggedMessage); - logger->startLogging(); +connect(logger, &QOpenGLDebugLogger::messageLogged, receiver, &LogHandler::handleLoggedMessage); +logger->startLogging(); //! [5] + //! [6] - QOpenGLDebugMessage message = - QOpenGLDebugMessage::createApplicationMessage(QStringLiteral("Custom message")); +QOpenGLDebugMessage message = + QOpenGLDebugMessage::createApplicationMessage(QStringLiteral("Custom message")); - logger->logMessage(message); +logger->logMessage(message); //! [6] + +} // SnippetWrapper::wrapper1 +} // src_gui_opengl_qopengldebug |