gpt4 book ai didi

c++ - Qt 5.9 - 由于不赞成调用 glLoadIdentity 而在 0x0 出现异常

转载 作者:可可西里 更新时间:2023-11-01 10:42:24 24 4
gpt4 key购买 nike

我有一个同学写的代码(我们正在做一个项目):

//inside cqtopencvviewergl.cpp
void CQtOpenCVViewerGl::resizeGL(int width, int height)
{
makeCurrent();

glViewport(0, 0, (GLint)(width), (GLint)(height));

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

glOrtho(0, width, -height, 0, 0, 1);

glMatrixMode(GL_MODELVIEW);

recalculatePosition();

emit imageSizeChanged(mRenderWidth, mRenderHeight);

updateScene();
}

glLoadIdentity() 的调用导致 Exception at 0x0, code: 0x0000005 根据调试器 C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\cdb.exe 在我的例子中。

我知道该函数已被弃用。但是我对所有关于我应该怎么做的信息来源感到非常困惑。所以我会帮助你克服迷失方向,希望你能帮助我......

根据 this回答 Exception occurs because the functions used are deprecated.但问题不同,因为我(或我们)以完全不同的方式包含 openGL:

cqtopencvviewergl.cpp 的顶部,我们包含以下内容:

#include "include/Gui/cqtopencvviewergl.h"
#include <QOpenGLFunctions>
#include <opencv2/opencv.hpp>
#include <QPalette>

cqtopencvviewergl.h 的顶部,我们包括:

#include <QOpenGLWidget>
#include <QOpenGLFunctions_2_0>
#include <opencv2/core/core.hpp>

所以我们使用 Qt 类来调用 openGL 函数。我查看了代码,似乎 Qt 自行处理弃用。

同样根据this回答 Qt 支持所有当前的桌面 OpenGL 版本

根据 this提问者对问题的回答How to replace following (deprecated) OpenGL functions? Windows 离线安装程序默认基于 ANGLE。我使用了离线安装程序...

根据 this qt wiki 中的条目 要使用 ANGLE 编译 Qt必须安装 Direct X SDK。但是我怀疑如果我使用 QOpenGLFunctionsQOpenGLFunctions_2_0...

我是否真的需要这个

根据 wiki 条目,Direct X SDKWindows SDK 的一部分,所以我也怀疑我是否已经拥有 ANGLE事实上,我已经有一些 Windows SDK:

enter image description here

同样根据this文章 我应该使用 configure -opengl dynamicly 并且因为我使用 Windows 我试图找出调用 configure 的位置并找到 configure.bat -opengl desktopthis文章。所以想运行 configure.bat -opengl dynamic 但我在 C:\Qt\Qt5.9.1 的任何地方都找不到 configure.bat > 目录...

我使用以下 Qt 工具包:

enter image description here

我是唯一一个(项目中的 6 个人)遇到这个问题的人。通常我的问题更准确,但我在这里迷路了。我该怎么办?

最佳答案

嗯,解决方案很简单......

根据 this article 可以通过QT_OPENGL 环境变量和以下应用程序属性配置加载机制...

所以我添加了 QT_OPENGL 设置为 desktop 作为系统环境变量:

Control Panel > System > Advanced system settings > Environment Variables

enter image description here

我确定我的电脑讨厌我...干杯!

关于c++ - Qt 5.9 - 由于不赞成调用 glLoadIdentity 而在 0x0 出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45655352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com