在Qt中创建原始GL上下文?

 呼和浩特-时尚范儿 发布于 2023-01-30 14:26

我正在使用Qt进行项目.它有一些QGLWidgets,这些工作很漂亮.

问题是,我有一些遗留代码我想使用它使用原始OpenGL命令来做一些纹理和网格处理(渲染网格到图像等).我想从我的Qt代码中调用这些函数,但当然这要求我在调用OpenGL命令之前设置一个新的OpenGL上下文.

我试着做以下事情:

QGLContext context(QGLFormat::defaultFormat());
std::cout << "context creation: " << context.create() << std::endl;

if(!context.isValid())
{
    std::cout << "Cannot create GL context" << std::endl;
    return false;
}

context.makeCurrent();
callLegacyOpenGLCode();

但它不起作用.QGLContext :: create()返回false.这是在Windows 7上使用Qt 4.8,使用OpenGL支持编译.

请问Qt为我创建一个新的OpenGL上下文是错误的方法吗?我该怎么做呢?

1 个回答
  • 对于其他搜索此问题的人来说,@ ratchetfreak的建议很好.以下代码正常工作:

    QGLWidget tmpwidget;
    
    if(!tmpwidget.isValid())
    {
        std::cout << "Cannot create GL context" << std::endl;
        return false;
    }
    
    tmpwidget.makeCurrent();
    callLegacyOpenGLCode();
    

    2023-01-30 14:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有