From 888e3d86a9954b7e42640029ada36f51827a8675 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Du=C5=A1an=20Poizl?= Date: Thu, 7 Apr 2022 09:58:52 +0200 Subject: [PATCH] Use OpenGL 3.2 Core --- imagescrollareagl.cpp | 5 +++-- imagescrollareagl.h | 4 ++-- main.cpp | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/imagescrollareagl.cpp b/imagescrollareagl.cpp index 489aa82..b2bba84 100644 --- a/imagescrollareagl.cpp +++ b/imagescrollareagl.cpp @@ -173,8 +173,9 @@ void ImageWidget::resizeGL(int w, int h) void ImageWidget::initializeGL() { - f = context()->versionFunctions(); + f = context()->functions(); f->glClearColor(0.5f, 0.5f, 0.5f, 1.0f); + QOpenGLFunctions_3_2_Core *f3 = context()->versionFunctions(); m_vao = std::unique_ptr(new QOpenGLVertexArrayObject); m_vao->create(); @@ -209,7 +210,7 @@ void ImageWidget::initializeGL() m_program = std::unique_ptr(new QOpenGLShaderProgram); m_program->addShaderFromSourceFile(QOpenGLShader::Vertex, ":/shaders/image.vert"); m_program->addShaderFromSourceFile(QOpenGLShader::Fragment, ":/shaders/image.frag"); - f->glBindFragDataLocation(m_program->programId(), 0, "color"); + if(f3)f3->glBindFragDataLocation(m_program->programId(), 0, "color"); if(!m_program->link()) { qDebug() << "Link failed" << m_program->log(); diff --git a/imagescrollareagl.h b/imagescrollareagl.h index 47b42bc..942585b 100644 --- a/imagescrollareagl.h +++ b/imagescrollareagl.h @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include #include @@ -24,7 +24,7 @@ typedef enum class ImageWidget : public QOpenGLWidget { Q_OBJECT - QOpenGLFunctions_3_0 *f; + QOpenGLFunctions *f; std::unique_ptr m_program; std::unique_ptr m_buffer; std::unique_ptr m_image; diff --git a/main.cpp b/main.cpp index 123e8da..332c42d 100644 --- a/main.cpp +++ b/main.cpp @@ -6,8 +6,9 @@ int main(int argc, char *argv[]) { QSurfaceFormat format; format.setMajorVersion(3); - format.setMinorVersion(0); + format.setMinorVersion(2); format.setOption(QSurfaceFormat::DebugContext); + format.setProfile(QSurfaceFormat::OpenGLContextProfile::CoreProfile); QSurfaceFormat::setDefaultFormat(format); QApplication a(argc, argv);