From 90308419109e1af708f0cb85384d2c674df6195c Mon Sep 17 00:00:00 2001 From: Markus Bullmann Date: Wed, 4 Apr 2018 11:41:06 +0200 Subject: [PATCH] Small OpenGL fixes --- IndoorMap.pro | 1 + mapview/3D/MapView3D.cpp | 47 ++++++++++++++++++++++++-------------- mapview/3D/misc/Shader.cpp | 1 - 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/IndoorMap.pro b/IndoorMap.pro index 39b3a7a..0f01768 100644 --- a/IndoorMap.pro +++ b/IndoorMap.pro @@ -22,6 +22,7 @@ unix { win32 { DEFINES += _USE_MATH_DEFINES + CONFIG += console } INCLUDEPATH += \ diff --git a/mapview/3D/MapView3D.cpp b/mapview/3D/MapView3D.cpp index b0a6c0e..f779bd5 100644 --- a/mapview/3D/MapView3D.cpp +++ b/mapview/3D/MapView3D.cpp @@ -104,14 +104,14 @@ MapView3D::MapView3D(QWidget *parent) : QOpenGLWidget(parent) { auto format = QSurfaceFormat(); format.setRenderableType(QSurfaceFormat::OpenGL); format.setVersion(3, 4); - //format.setSamples(2); - auto ver = format.version(); - - std::cout << ver.first << " " << ver.second << std::endl; + format.setSamples(2); format.setProfile(QSurfaceFormat::CompatibilityProfile); - format.setOption(QSurfaceFormat::DebugContext); + format.setOption(QSurfaceFormat::DebugContext); setFormat(format); + + auto ver = format.version(); + std::cout << "OpenGL Context Version: " << ver.first << "." << ver.second << std::endl; } @@ -122,6 +122,31 @@ void MapView3D::initializeGL() { QOpenGLWidget::initializeGL(); initializeOpenGLFunctions(); + logger = new QOpenGLDebugLogger(this); + if (logger->initialize()) { + connect(logger, &QOpenGLDebugLogger::messageLogged, [] (const QOpenGLDebugMessage& debugMessage) { + std::cout << debugMessage.message().toStdString() << std::endl; + }); + logger->startLogging(QOpenGLDebugLogger::SynchronousLogging); + } + + // Print device info + const GLubyte* vendor = glGetString(GL_VENDOR); + const GLubyte* renderer = glGetString(GL_RENDERER); + const GLubyte* version = glGetString(GL_VERSION); + + std::cout << "Device info: "; + if (vendor) { + std::cout << (const char*) vendor << " "; + } + if (renderer) { + std::cout << (const char*) renderer << " "; + } + if (version) { + std::cout << (const char*) version << " "; + } + std::cout << std::endl; + // this should be the default!! glCullFace(GL_BACK); glFrontFace(GL_CCW); @@ -130,18 +155,6 @@ void MapView3D::initializeGL() { // additional settings glEnable(GL_DEPTH_TEST); glClearColor(0.5, 0.5, 0.5, 1.0); - - //QOpenGLContext* ctx = QOpenGLContext::currentContext(); - logger = new QOpenGLDebugLogger(this); - if (logger->initialize()) { - - connect(logger, &QOpenGLDebugLogger::messageLogged, [] (const QOpenGLDebugMessage& debugMessage) { - std::cout << debugMessage.message().toStdString() << std::endl; - }); - logger->startLogging(QOpenGLDebugLogger::SynchronousLogging); - - } - } void MapView3D::paintGL() { diff --git a/mapview/3D/misc/Shader.cpp b/mapview/3D/misc/Shader.cpp index 25460dc..ab6566c 100644 --- a/mapview/3D/misc/Shader.cpp +++ b/mapview/3D/misc/Shader.cpp @@ -79,7 +79,6 @@ int Shader::getUniform(const char* name) { return loc; } int Shader::getAttribute(const char* name) { - vao.bind(); int loc = attributeLocation(name); if (loc == -1) {throw std::runtime_error("error");} return loc;