diff options
author | Laszlo Agocs <laszlo.agocs@digia.com> | 2014-03-07 12:49:44 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-14 18:20:46 +0100 |
commit | 6a9f917b6a1598c113894057110d16d109ecad43 (patch) | |
tree | 4ae5f3ce17f5ddabb168d14f2ca86b2c8060bdda /examples | |
parent | 6d05f5faff8b125c3e43192b857990e7f0ff208d (diff) |
contextinfo example: Print the format() both for context and surface
And make the output a bit nicer.
Change-Id: I5f0f82374b6e9f9feca70a60c30967adb35d48ec
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/opengl/contextinfo/widget.cpp | 41 | ||||
-rw-r--r-- | examples/opengl/contextinfo/widget.h | 4 |
2 files changed, 30 insertions, 15 deletions
diff --git a/examples/opengl/contextinfo/widget.cpp b/examples/opengl/contextinfo/widget.cpp index ff78639e24..4ab62ec2d2 100644 --- a/examples/opengl/contextinfo/widget.cpp +++ b/examples/opengl/contextinfo/widget.cpp @@ -275,6 +275,7 @@ void Widget::start() addRenderWindow(); return; } + m_surface = renderWindow; renderWindow->setForceGLSL110(forceGLSL110); connect(renderWindow, &RenderWindow::ready, this, &Widget::renderWindowReady); @@ -284,12 +285,8 @@ void Widget::start() addRenderWindow(); } -void Widget::renderWindowReady() +void Widget::printFormat(const QSurfaceFormat &format) { - QOpenGLContext *context = QOpenGLContext::currentContext(); - Q_ASSERT(context); - const QSurfaceFormat format = context->format(); - m_output->append(tr("OpenGL version: %1.%2").arg(format.majorVersion()).arg(format.minorVersion())); for (size_t i = 0; i < sizeof(profiles) / sizeof(Profile); ++i) @@ -310,6 +307,21 @@ void Widget::renderWindowReady() break; } + m_output->append(tr("Depth buffer size: %1").arg(QString::number(format.depthBufferSize()))); + m_output->append(tr("Stencil buffer size: %1").arg(QString::number(format.stencilBufferSize()))); + m_output->append(tr("Samples: %1").arg(QString::number(format.samples()))); + m_output->append(tr("Red buffer size: %1").arg(QString::number(format.redBufferSize()))); + m_output->append(tr("Green buffer size: %1").arg(QString::number(format.greenBufferSize()))); + m_output->append(tr("Blue buffer size: %1").arg(QString::number(format.blueBufferSize()))); + m_output->append(tr("Alpha buffer size: %1").arg(QString::number(format.alphaBufferSize()))); + m_output->append(tr("Swap interval: %1").arg(QString::number(format.swapInterval()))); +} + +void Widget::renderWindowReady() +{ + QOpenGLContext *context = QOpenGLContext::currentContext(); + Q_ASSERT(context); + QString vendor, renderer, version, glslVersion; const GLubyte *p; QOpenGLFunctions *f = context->functions(); @@ -322,22 +334,21 @@ void Widget::renderWindowReady() if ((p = f->glGetString(GL_SHADING_LANGUAGE_VERSION))) glslVersion = QString::fromLatin1(reinterpret_cast<const char *>(p)); - m_output->append(tr("\nVendor: %1").arg(vendor)); + m_output->append(tr("*** Context information ***")); + m_output->append(tr("Vendor: %1").arg(vendor)); m_output->append(tr("Renderer: %1").arg(renderer)); m_output->append(tr("OpenGL version: %1").arg(version)); m_output->append(tr("GLSL version: %1").arg(glslVersion)); - m_output->append(tr("\nDepth buffer size: %1").arg(QString::number(format.depthBufferSize()))); - m_output->append(tr("Stencil buffer size: %1").arg(QString::number(format.stencilBufferSize()))); - m_output->append(tr("Samples: %1").arg(QString::number(format.samples()))); - m_output->append(tr("Red buffer size: %1").arg(QString::number(format.redBufferSize()))); - m_output->append(tr("Green buffer size: %1").arg(QString::number(format.greenBufferSize()))); - m_output->append(tr("Blue buffer size: %1").arg(QString::number(format.blueBufferSize()))); - m_output->append(tr("Alpha buffer size: %1").arg(QString::number(format.alphaBufferSize()))); - m_output->append(tr("Swap interval: %1").arg(QString::number(format.swapInterval()))); + m_output->append(tr("\n*** QSurfaceFormat from context ***")); + printFormat(context->format()); + + m_output->append(tr("\n*** QSurfaceFormat from window surface ***")); + printFormat(m_surface->format()); + m_output->append(tr("\n*** Qt build information ***")); const char *gltype[] = { "Desktop", "GLES 2", "GLES 1" }; - m_output->append(tr("\nQt OpenGL configuration: %1") + m_output->append(tr("Qt OpenGL configuration: %1") .arg(QString::fromLatin1(gltype[QOpenGLContext::openGLModuleType()]))); m_output->append(tr("Qt OpenGL library handle: %1") .arg(QString::number(qintptr(QOpenGLContext::openGLModuleHandle()), 16))); diff --git a/examples/opengl/contextinfo/widget.h b/examples/opengl/contextinfo/widget.h index dcae66dac0..ad664178e4 100644 --- a/examples/opengl/contextinfo/widget.h +++ b/examples/opengl/contextinfo/widget.h @@ -46,6 +46,8 @@ QT_FORWARD_DECLARE_CLASS(QComboBox) QT_FORWARD_DECLARE_CLASS(QTextEdit) QT_FORWARD_DECLARE_CLASS(QVBoxLayout) +QT_FORWARD_DECLARE_CLASS(QSurfaceFormat) +QT_FORWARD_DECLARE_CLASS(QSurface) class Widget : public QWidget { @@ -65,6 +67,7 @@ private: void addOptions(QLayout *layout); void addRenderableTypes(QLayout *layout); void addRenderWindow(); + void printFormat(const QSurfaceFormat &format); QComboBox *m_version; QLayout *m_profiles; @@ -74,6 +77,7 @@ private: QTextEdit *m_extensions; QVBoxLayout *m_renderWindowLayout; QWidget *m_renderWindowContainer; + QSurface *m_surface; }; #endif // WIDGET_H |