summaryrefslogtreecommitdiffstats
path: root/src/gui/doc/snippets/code/src_gui_opengl_qopengldebug.cpp
diff options
context:
space:
mode:
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.cpp89
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