0
点赞
收藏
分享

微信扫一扫

北京第一年-OpenGL-8需要一个操作环境,比如qt

向上的萝卜白菜 2022-02-28 阅读 55

用glfw写的很多的opengl程序都是缺少操控界面的,如果我们用过blender或者3dmax等都知道它们一般有一个大绘制区来显示3D,同时在两侧有操作界面,这样就很方便。所以我们也需要一个这种界面,那该怎么办呢?

于是想到了用借用qt或者vsstudio。

说借用是因为我们有几个原则或者目的。

1.opengl程序要和界面分离。

也就是说,我们希望在仿真环境通过操作面板来调试控制操作opengl程序,
当这一步结束后,我们的opengl程序可以独立出来,挪到别处,比如移到嵌入式系统,在哪里我们就不需要操作面板了,取而代之的是业务逻辑。

2.操作界面要可替换,因为我们的软件还是希望跨平台的,或者说不想被平台束缚,所以再windosw中,可能会用qt也可能会用vsstudio开发,开发语言也可能是c#。

如果能达到上述两个目标,我们的程序一定是越写越好,越来越强大和完善。

用一个词话叫做“根正苗红”,我们的设计初衷正确了,程序才会枝繁叶茂,越来越好,但这确实也有一定难度,也不能保证一开始就正确,在开发过程中还需要修正。

在这里插入图片描述初步尝试了一下qt结合opengl,以前我也用过,但那时用的是qt 的api,所以就相当于和qt产生了高度耦合,这不是我现在想要的。

由于也是刚刚开始研究用qt的界面+纯opengl,所以还不是很熟悉,但大致做到如下:

class GLWidget : public QOpenGLWidget,public QOpenGLExtraFunctions

QOpenGLWidget相当于我们上次说的响应事件+egl。
QOpenGLExtraFunctions相当于对opengl的api。

所以第一个程序运行后就是这样。

接下来要把我们之前的程序移植到这里,所以一个程序好不好,在它移植的时候也能看出来。不好的程序根本无法移植,耦合太高,好的程序会很轻松的移植到各种环境,这就增加了它的生命力和活力。

举报

相关推荐

0 条评论