- 博客(19)
- 问答 (1)
- 收藏
- 关注
原创 OpenGL学习记录(二)------ CMakelists导入GLEW出现的问题
这里主要是简单的记录一下在引入GLEW时遇见的几个问题,以及解决方案,目前主要是静态链接静态链接就会出现第二个问题,所以其实可以考虑动态链接,直接在CMakeLists中写完就ok# 设置cmake 的最小版本# 设置项目名称# 包含GLFW头文件目录和静态库目录# 包含GLEW头文件目录和静态库目录# 添加默认选项告诉编译器GLEW是静态链接# 使用目标源文件生成的可执行文件# 链接静态库lib# 用于解决无法解析的外部符号 __imp_glClear错误# 拷贝动态库。
2025-10-31 12:17:34
332
原创 OpenGL学习记录(一)------CMakelists导入GLFW
当然如果觉得CMakelist太难也是很正常毕竟有很多的规则写法等,不过大多就是用那几个命令我也没学的很高阶的方式如自定义函数等,基本上一些中小项目用到的命令也不多也用不到那么牛的语法,用习惯了或者明白其中的规则之后管理一些小项目还是挺方便的,虽然现在有很多CMake的替代,例如 xmake qmake这些,也都是为了简化CMake带来的复杂的问题。
2025-10-27 18:39:53
990
原创 关于QSettings生成配置文件记录
上述是关于QSetting的简单使用,用来生成一个简单的配置文件,记录ip地址和端口等,关于QSetting的使用事项是不建议作为类成员对象进行new等方式创建,虽然可以但是有违背QSetting的设计理念。
2025-10-05 13:57:30
636
原创 FFmpeg+CMake+VS2022下载安装与配置
我们没必要自己编译, github提供了编译好后需要的动态库、静态库还有头文件, 搞过几个库这算是导入最简单错误最少的库之一了, 有的库还需要自己编译折磨死人了!
2025-06-12 09:51:31
800
原创 设计模式-生成器模式
生成器模式在复杂对象构造场景中极具优势,尤其适合多参数、多步骤、多形态的对象构建。但其缺点在于代码复杂度较高,需权衡使用场景。
2025-03-06 00:42:30
1005
原创 设计模式-工厂方法模式
特性简单工厂方法模式工厂方法模式创建对象的方式通过一个工厂类创建所有对象通过子类工厂创建特定对象开闭原则违反(新增产品需修改工厂类)符合(新增产品只需增加新工厂类)职责集中度职责集中在一个工厂类职责分散到多个工厂类类数量较少较多(每个产品对应一个工厂类)适用场景产品类型少且不频繁变化产品类型多且可能频繁变化。
2025-01-15 03:05:39
906
原创 visual studio C++ 运行Qt项目时出现的问题
这个方法的好处是一个项目可以单独设置一个编译器,例如你有个项目是Qt5的 有个项目是Qt6, 就可以针对项目的版本需求来设置。右键此电脑--->选择属性---->选择高级系统设置---->环境变量, 把对应的路径粘贴过去即可。这个方法就是全局设置,所有的qt项目都会应用到这个版本的编译器。这个方法只针对这一个项目设置,其他项目的属性是不会生效的。对着项目右键弹出一个菜单, 然后点击属性。在属性中选择调试, 在环境一栏中添加。这个方法就是在系统的环境变量中添加。这个目录是你QT的安装目录。
2024-12-17 19:58:26
564
原创 vtk 中的矩阵乘法顺序PreMultiply和PostMultiply
本质上这两个函数接口是为了满足不同的变换需要,是想先应用新的矩阵还是想先应用现用的矩阵。
2024-08-05 15:18:22
835
1
原创 QT+CMake+VTK在QT中导入VTK库的方法
之前写了一个在CMake中使用绝对路径导入的方法链接如下从环境搭建开始说起, 但是这个方法切换版本可能有点麻烦, 因为是使用系统环境变量的方式, 让CMake的在系统环境变量中找到VTK的库, 如果有版本切换(debug和release互相切换)的需要请在CMakeGUI中切换或者使用(这样不就背离了我想要的不设置绝对路径了吗)
2024-06-14 10:34:11
1562
原创 QtOpenGLWidget的析构问题QOpenGLVertexArrayObject::destroy() failed to restore current context
发生的原因:我想在QOpenGLWidget的析构函数 delete 掉我的网格类对象,网格类对象内使用了VAO对象也就是。这个问题的原因就是因为在OpenGL窗口结束了之后,最后在析构的时候还有使用到OpenGL的东西,导致的上下文不不正确。OpenGL对自身的上下文是非常敏感的,稍有不慎可能就会导致内存泄漏,或者没有释放正确,就比如。所以在MyOpenGLWidget的析构函数中加入下面的函数来确保上下文正确。由于上下文的问题没有办法正确的释放。这个类,两个类的析构大致如下。
2023-12-26 15:35:41
1108
1
原创 opengl着色器
总结下来就是着色器可以理解为跑在GPU的程序,给GPU运行的程序,通过OpenGL提供的接口将程序丢给GPU来运行,极大的减少CPU的负担,提高渲染的效率等。上述主要提到了两个比较重要的着色器,顶点着色器和片段着色器,这两个着色器尤为重要。
2023-12-05 18:18:10
148
1
原创 设计模式笔记
子类(派生类)对父类(基类)进行拓展,但不能改变父类(基类)原有的功能,保证继承的稳定性和正确性,例如一个函数可以接受父类(基类)对象,那么也可以接受子类(派生类)对象,接收子类(派生类)对象时并不会影响到函数逻辑和结果。在许多时候一个类的设计是没办法遵循说有的原则,设计模式也是如此,设计模式本身就是围绕着设计原则展开的,例如抽象工厂模式,它所遵循的设计原则有单一职责原则和开闭原则,因此可以搭配其他的设计模式一起来完成一个模块的设计。增加系统的灵活性,降低类与类之间的耦合度,提高代码的复用。
2023-08-01 16:25:20
143
1
原创 vtk.js+react 实现ArrowSource 平移,缩放,旋转
中没有提供可以直接对该对象位置的变换接口,只能通过对它进行矩阵变换来改变它的位置整体的大小。该类提供了一个创建mat4的系统变换矩阵。参数为真时,两端将会翻转即尖端位于。实现方法主要使用到的API。箭头的轴底坐默认是在。,箭头的尖端默认是在。
2023-07-19 10:44:50
642
原创 vscode 出现error while fetching extensions.xhr failed 问题
vscode 出现error while fetching extensions.xhr failed 问题
2023-02-10 18:35:01
4976
5
空空如也
使用CMake安装dlib时,点击install生成时报错,错误代码MSB307
2022-01-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅