首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于initializeOpenGLFunctions返回假的问题

关于initializeOpenGLFunctions返回假的问题
EN

Stack Overflow用户
提问于 2022-01-18 06:14:20
回答 1查看 155关注 0票数 -2

initializeGL()失败后,我会遇到下面的段错误。对是什么原因有什么想法吗?当我从QOpenGLFunctions继承时没有问题,但我需要v3.0功能。

代码语言:javascript
运行
复制
class MyGLWidget : public QOpenGLWidget, protected QOpenGLFunctions
代码语言:javascript
运行
复制
QOpenGLFunctions_3_3_Compatibility::glClearColor (this=0x5d3c40, red=0, green=0, blue=0, alpha=1) at /usr/include/qt5/QtGui/qopenglfunctions_3_3_compatibility.h:1064
1064        d_1_0_Core->f.ClearColor(red, green, blue, alpha);
代码语言:javascript
运行
复制
class MyGLWidget : public QOpenGLWidget, protected QOpenGLFunctions_3_3_Compatibility
{
    Q_OBJECT
...
};

    void initializeGL() override {
        makeCurrent();
        bool ret =  initializeOpenGLFunctions();
        std::cout << std::boolalpha << ret << std::endl; // FALSE
        glClearColor(0, 0, 0, 1); // CRASH
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-18 07:32:21

我解决了这个问题如下。我继承了QOpenGLFunctions,然后在需要时使用相应的核心配置文件3.3

代码语言:javascript
运行
复制
class MyGLWidget : public QOpenGLWidget, protected QOpenGLFunctions
{
   Q_OBJECT
...
protected:
   void initializeGL() override {
        initializeOpenGLFunctions();
        auto * glFunctions = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_3_3_Core>();
        glFunctions->glClearColor(0, 0, 0, 1);
    }
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70751049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档